svn merge -r 22371:22571 https://svn.blender.org/svnroot/bf-blender/branches/blender2.5/blender
This commit is contained in:
@@ -42,14 +42,21 @@ MACRO(SETUP_LIBDIRS)
|
||||
if(COMMAND cmake_policy)
|
||||
CMAKE_POLICY(SET CMP0003 NEW)
|
||||
endif(COMMAND cmake_policy)
|
||||
LINK_DIRECTORIES(${PYTHON_LIBPATH} ${SDL_LIBPATH} ${JPEG_LIBPATH} ${PNG_LIBPATH} ${ZLIB_LIBPATH} ${ICONV_LIBPATH} ${OPENEXR_LIBPATH} ${QUICKTIME_LIBPATH} ${FFMPEG_LIBPATH})
|
||||
LINK_DIRECTORIES(${PYTHON_LIBPATH} ${JPEG_LIBPATH} ${PNG_LIBPATH} ${ZLIB_LIBPATH} ${OPENEXR_LIBPATH} ${QUICKTIME_LIBPATH} ${FFMPEG_LIBPATH})
|
||||
LINK_DIRECTORIES(${FREETYPE_LIBPATH} ${LIBSAMPLERATE_LIBPATH})
|
||||
IF(WITH_INTERNATIONAL)
|
||||
LINK_DIRECTORIES(${ICONV_LIBPATH})
|
||||
LINK_DIRECTORIES(${GETTEXT_LIBPATH})
|
||||
ENDIF(WITH_INTERNATIONAL)
|
||||
IF(WITH_SDL)
|
||||
LINK_DIRECTORIES(${SDL_LIBPATH})
|
||||
ENDIF(WITH_SDL)
|
||||
IF(WITH_OPENAL)
|
||||
LINK_DIRECTORIES(${OPENAL_LIBPATH})
|
||||
ENDIF(WITH_OPENAL)
|
||||
IF(WITH_JACK)
|
||||
LINK_DIRECTORIES(${JACK_LIBPATH})
|
||||
ENDIF(WITH_JACK)
|
||||
IF(WITH_FFTW3)
|
||||
LINK_DIRECTORIES(${FFTW3_LIBPATH})
|
||||
ENDIF(WITH_FFTW3)
|
||||
@@ -62,9 +69,9 @@ ENDMACRO(SETUP_LIBDIRS)
|
||||
MACRO(SETUP_LIBLINKS
|
||||
target)
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS} ")
|
||||
#TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LIB} ${PYTHON_LINKFLAGS} ${JPEG_LIB} ${PNG_LIB} ${ZLIB_LIB} ${SDL_LIB} ${LLIBS})
|
||||
#TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LIB} ${PYTHON_LINKFLAGS} ${JPEG_LIB} ${PNG_LIB} ${ZLIB_LIB} ${SDL_LIBRARY} ${LLIBS})
|
||||
|
||||
TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LINKFLAGS} ${FFTW3_LIB} ${JPEG_LIBRARY} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} ${SDL_LIB} ${LLIBS})
|
||||
TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LINKFLAGS} ${FFTW3_LIB} ${JPEG_LIBRARY} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} ${LLIBS})
|
||||
|
||||
# since we are using the local libs for python when compiling msvc projects, we need to add _d when compiling debug versions
|
||||
|
||||
@@ -81,8 +88,8 @@ MACRO(SETUP_LIBLINKS
|
||||
ENDIF(WIN32)
|
||||
|
||||
|
||||
TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LINKFLAGS} ${JPEG_LIB} ${PNG_LIB} ${ZLIB_LIB} ${SDL_LIB} ${LLIBS})
|
||||
TARGET_LINK_LIBRARIES(${target} ${FREETYPE_LIB} ${LIBSAMPLERATE_LIB})
|
||||
TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LINKFLAGS} ${JPEG_LIB} ${PNG_LIB} ${ZLIB_LIB} ${LLIBS})
|
||||
TARGET_LINK_LIBRARIES(${target} ${FREETYPE_LIBRARY} ${LIBSAMPLERATE_LIB})
|
||||
|
||||
# since we are using the local libs for python when compiling msvc projects, we need to add _d when compiling debug versions
|
||||
|
||||
@@ -102,8 +109,14 @@ MACRO(SETUP_LIBLINKS
|
||||
TARGET_LINK_LIBRARIES(${target} ${GETTEXT_LIB})
|
||||
ENDIF(WITH_INTERNATIONAL)
|
||||
IF(WITH_OPENAL)
|
||||
TARGET_LINK_LIBRARIES(${target} ${OPENAL_LIB})
|
||||
TARGET_LINK_LIBRARIES(${target} ${OPENAL_LIBRARY})
|
||||
ENDIF(WITH_OPENAL)
|
||||
IF(WITH_JACK)
|
||||
TARGET_LINK_LIBRARIES(${target} ${JACK_LIB})
|
||||
ENDIF(WITH_JACK)
|
||||
IF(WITH_SDL)
|
||||
TARGET_LINK_LIBRARIES(${target} ${SDL_LIBRARY})
|
||||
ENDIF(WITH_SDL)
|
||||
IF(WIN32)
|
||||
TARGET_LINK_LIBRARIES(${target} ${ICONV_LIB})
|
||||
ENDIF(WIN32)
|
||||
|
||||
139
CMakeLists.txt
139
CMakeLists.txt
@@ -69,6 +69,8 @@ OPTION(WITH_OPENAL "Enable OpenAL Support (http://www.openal.org)" ON)
|
||||
OPTION(WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" OFF)
|
||||
OPTION(WITH_WEBPLUGIN "Enable Web Plugin (Unix only)" OFF)
|
||||
OPTION(WITH_FFTW3 "Enable FFTW3 support" OFF)
|
||||
OPTION(WITH_JACK "Enable Jack Support (http://www.jackaudio.org)" OFF)
|
||||
OPTION(WITH_INSTALL "Install accompanying scripts and language files needed to run blender" ON)
|
||||
|
||||
IF(NOT WITH_GAMEENGINE AND WITH_PLAYER)
|
||||
MESSAGE("WARNING: WITH_PLAYER needs WITH_GAMEENGINE")
|
||||
@@ -94,13 +96,18 @@ IF(UNIX AND NOT APPLE)
|
||||
FIND_PACKAGE(OpenAL)
|
||||
IF(OPENAL_FOUND)
|
||||
SET(WITH_OPENAL ON)
|
||||
SET(OPENAL_LIB ${OPENAL_LIBRARY})
|
||||
SET(OPENAL_INC ${OPENAL_INCLUDE_DIR})
|
||||
ELSE(OPENAL_FOUND)
|
||||
SET(WITH_OPENAL OFF)
|
||||
ENDIF(OPENAL_FOUND)
|
||||
ENDIF(WITH_OPENAL)
|
||||
|
||||
IF(WITH_JACK)
|
||||
SET(JACK /usr)
|
||||
SET(JACK_INC ${JACK}/include/jack)
|
||||
SET(JACK_LIB jack)
|
||||
SET(JACK_LIBPATH ${JACK}/lib)
|
||||
ENDIF(WITH_JACK)
|
||||
|
||||
FIND_LIBRARY(INTL_LIBRARY
|
||||
NAMES intl
|
||||
PATHS
|
||||
@@ -111,34 +118,34 @@ IF(UNIX AND NOT APPLE)
|
||||
PATHS
|
||||
/sw/lib
|
||||
)
|
||||
|
||||
IF(INTL_LIBRARY AND ICONV_LIBRARY)
|
||||
SET(GETTEXT_LIB ${INTL_LIBRARY} ${ICONV_LIBRARY})
|
||||
ENDIF(INTL_LIBRARY AND ICONV_LIBRARY)
|
||||
|
||||
FIND_PATH(FREETYPE_INC
|
||||
freetype
|
||||
PATHS
|
||||
/usr/local/include/freetype2
|
||||
/usr/include/freetype2
|
||||
/sw/include/freetype2
|
||||
/opt/local/include/freetype2
|
||||
/opt/csw/include/freetype2
|
||||
/opt/include/freetype2
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
SET(FREETYPE_LIB freetype)
|
||||
|
||||
FIND_PACKAGE(PythonLibs)
|
||||
SET(PYTHON_INC "${PYTHON_INCLUDE_PATH}" CACHE STRING "")
|
||||
SET(PYTHON_LIB "${PYTHON_LIBRARIES}" CACHE STRING "")
|
||||
FIND_PACKAGE(PythonInterp)
|
||||
SET(PYTHON_BINARY ${PYTHON_EXECUTABLE} CACHE STRING "")
|
||||
FIND_PACKAGE(Freetype)
|
||||
# UNSET(FREETYPE_INCLUDE_DIRS CACHE) # cant use
|
||||
|
||||
# No way to set py31. remove for now.
|
||||
# FIND_PACKAGE(PythonLibs)
|
||||
SET(PYTHON /usr)
|
||||
SET(PYTHON_VERSION 3.1)
|
||||
SET(PYTHON_INC "${PYTHON}/include/python${PYTHON_VERSION}" CACHE STRING "")
|
||||
# SET(PYTHON_BINARY python) # not used yet
|
||||
SET(PYTHON_LIB python${PYTHON_VERSION} CACHE STRING "")
|
||||
SET(PYTHON_LIBPATH ${PYTHON}/lib CACHE STRING "")
|
||||
|
||||
# FIND_PACKAGE(PythonInterp) # not used yet
|
||||
# SET(PYTHON_BINARY ${PYTHON_EXECUTABLE} CACHE STRING "")
|
||||
|
||||
SET(PYTHON_LINKFLAGS "-Xlinker -export-dynamic")
|
||||
|
||||
IF(WITH_SDL)
|
||||
FIND_PACKAGE(SDL)
|
||||
SET(SDL_INC ${SDL_INCLUDE_DIR})
|
||||
SET(SDL_LIB ${SDL_LIBRARY})
|
||||
# UNSET(SDLMAIN_LIBRARY CACHE)
|
||||
IF(NOT SDL_FOUND)
|
||||
SET(WITH_SDL OFF)
|
||||
ENDIF(NOT SDL_FOUND)
|
||||
ENDIF(WITH_SDL)
|
||||
|
||||
FIND_PATH(OPENEXR_INC
|
||||
@@ -159,10 +166,10 @@ IF(UNIX AND NOT APPLE)
|
||||
SET(FFMPEG_LIBPATH ${FFMPEG}/lib)
|
||||
|
||||
IF(WITH_FFTW3)
|
||||
SET(FFTW3 /usr)
|
||||
SET(FFTW3_INC ${FFTW3}/include)
|
||||
SET(FFTW3_LIB fftw3)
|
||||
SET(FFTW3_LIBPATH ${FFTW3}/lib)
|
||||
SET(FFTW3 /usr)
|
||||
SET(FFTW3_INC ${FFTW3}/include)
|
||||
SET(FFTW3_LIB fftw3)
|
||||
SET(FFTW3_LIBPATH ${FFTW3}/lib)
|
||||
ENDIF(WITH_FFTW3)
|
||||
|
||||
SET(LIBSAMPLERATE /usr)
|
||||
@@ -176,7 +183,13 @@ IF(UNIX AND NOT APPLE)
|
||||
|
||||
FIND_PACKAGE(ZLIB REQUIRED)
|
||||
|
||||
SET(LLIBS "-lXi -lutil -lc -lm -lpthread -lstdc++ -lX11 -ldl")
|
||||
# Could use ${X11_Xinput_LIB} ${X11_X11_LIB} too
|
||||
SET(LLIBS "-lXi -lutil -lc -lm -lpthread -lstdc++ -lX11")
|
||||
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
# BSD's dont use libdl.so
|
||||
SET(LLIBS "${LLIBS} -ldl")
|
||||
ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
|
||||
IF(WITH_OPENMP)
|
||||
SET(LLIBS "${LLIBS} -lgomp")
|
||||
@@ -211,22 +224,29 @@ IF(WIN32)
|
||||
SET(PYTHON ${LIBDIR}/python)
|
||||
SET(PYTHON_VERSION 3.1)
|
||||
SET(PYTHON_INC "${PYTHON}/include/python${PYTHON_VERSION}")
|
||||
SET(PYTHON_BINARY python)
|
||||
# SET(PYTHON_BINARY python) # not used yet
|
||||
SET(PYTHON_LIB python31)
|
||||
SET(PYTHON_LIBPATH ${PYTHON}/lib)
|
||||
|
||||
IF(CMAKE_CL_64)
|
||||
SET(WITH_OPENAL OFF)
|
||||
ELSE(CMAKE_CL_64)
|
||||
#SET(WITH_OPENAL ON)
|
||||
SET(OPENAL ${LIBDIR}/openal)
|
||||
SET(OPENAL_INC ${OPENAL}/include)
|
||||
SET(OPENAL_LIB wrap_oal)
|
||||
SET(OPENAL_LIBPATH ${OPENAL}/lib)
|
||||
#SET(WITH_OPENAL ON)
|
||||
SET(OPENAL ${LIBDIR}/openal)
|
||||
SET(OPENAL_INCLUDE_DIR ${OPENAL}/include)
|
||||
SET(OPENAL_LIBRARY wrap_oal)
|
||||
SET(OPENAL_LIBPATH ${OPENAL}/lib)
|
||||
ENDIF(CMAKE_CL_64)
|
||||
|
||||
IF(WITH_JACK)
|
||||
SET(JACK ${LIBDIR}/jack)
|
||||
SET(JACK_INC ${JACK}/include/jack)
|
||||
SET(JACK_LIB jack)
|
||||
SET(JACK_LIBPATH ${JACK}/lib)
|
||||
ENDIF(WITH_JACK)
|
||||
|
||||
IF(CMAKE_CL_64)
|
||||
SET(PNG_LIBRARIES libpng)
|
||||
SET(PNG_LIBRARIES libpng)
|
||||
ELSE(CMAKE_CL_64)
|
||||
SET(PNG_LIBRARIES libpng_st)
|
||||
ENDIF(CMAKE_CL_64)
|
||||
@@ -248,25 +268,25 @@ IF(WIN32)
|
||||
SET(ICONV_LIBPATH ${ICONV}/lib)
|
||||
|
||||
IF(WITH_FFTW3)
|
||||
SET(FFTW3 ${LIBDIR}/fftw3)
|
||||
SET(FFTW3_INC ${FFTW3}/include)
|
||||
SET(FFTW3_LIB libfftw)
|
||||
SET(FFTW3_LIBPATH ${FFTW3}/lib)
|
||||
SET(FFTW3 ${LIBDIR}/fftw3)
|
||||
SET(FFTW3_INC ${FFTW3}/include)
|
||||
SET(FFTW3_LIB libfftw)
|
||||
SET(FFTW3_LIBPATH ${FFTW3}/lib)
|
||||
ENDIF(WITH_FFTW3)
|
||||
|
||||
SET(GETTEXT ${LIBDIR}/gettext)
|
||||
SET(GETTEXT_INC ${GETTEXT}/include)
|
||||
IF(CMAKE_CL_64)
|
||||
SET(GETTEXT_LIB gettextlib)
|
||||
SET(GETTEXT_LIB gettextlib)
|
||||
ELSE(CMAKE_CL_64)
|
||||
SET(GETTEXT_LIB gnu_gettext)
|
||||
SET(GETTEXT_LIB gnu_gettext)
|
||||
ENDIF(CMAKE_CL_64)
|
||||
SET(GETTEXT_LIBPATH ${GETTEXT}/lib)
|
||||
|
||||
SET(FREETYPE ${LIBDIR}/freetype)
|
||||
SET(FREETYPE_INC ${FREETYPE}/include ${FREETYPE}/include/freetype2)
|
||||
SET(FREETYPE_INCLUDE_DIRS ${FREETYPE}/include ${FREETYPE}/include/freetype2)
|
||||
SET(FREETYPE_LIBPATH ${FREETYPE}/lib)
|
||||
SET(FREETYPE_LIB freetype2ST)
|
||||
SET(FREETYPE_LIBRARY freetype2ST)
|
||||
|
||||
SET(OPENEXR ${LIBDIR}/openexr)
|
||||
SET(OPENEXR_INC ${OPENEXR}/include ${OPENEXR}/include/IlmImf ${OPENEXR}/include/Iex ${OPENEXR}/include/Imath)
|
||||
@@ -317,8 +337,8 @@ IF(WIN32)
|
||||
ENDIF(WITH_OPENMP)
|
||||
|
||||
SET(SDL ${LIBDIR}/sdl)
|
||||
SET(SDL_INC ${SDL}/include)
|
||||
SET(SDL_LIB SDL)
|
||||
SET(SDL_INCLUDE_DIR ${SDL}/include)
|
||||
SET(SDL_LIBRARY SDL)
|
||||
SET(SDL_LIBPATH ${SDL}/lib)
|
||||
|
||||
SET(PNG "${LIBDIR}/png")
|
||||
@@ -353,13 +373,17 @@ IF(APPLE)
|
||||
FIND_PACKAGE(OpenAL)
|
||||
IF(OPENAL_FOUND)
|
||||
SET(WITH_OPENAL ON)
|
||||
SET(OPENAL_LIB ${OPENAL_LIBRARY})
|
||||
SET(OPENAL_INC ${OPENAL_INCLUDE_DIR})
|
||||
ELSE(OPENAL_FOUND)
|
||||
SET(WITH_OPENAL OFF)
|
||||
ENDIF(OPENAL_FOUND)
|
||||
ENDIF(WITH_OPENAL)
|
||||
|
||||
IF(WITH_JACK)
|
||||
SET(JACK /usr)
|
||||
SET(JACK_INC ${JACK}/include/jack)
|
||||
SET(JACK_LIB jack)
|
||||
SET(JACK_LIBPATH ${JACK}/lib)
|
||||
ENDIF(WITH_JACK)
|
||||
|
||||
SET(PYTHON_VERSION 3.1)
|
||||
|
||||
@@ -368,7 +392,7 @@ IF(APPLE)
|
||||
|
||||
SET(PYTHON ${LIBDIR}/python)
|
||||
SET(PYTHON_INC "${PYTHON}/include/python${PYTHON_VERSION}" CACHE STRING "")
|
||||
SET(PYTHON_BINARY "${PYTHON}/bin/python${PYTHON_VERSION}" CACHE STRING "")
|
||||
# SET(PYTHON_BINARY "${PYTHON}/bin/python${PYTHON_VERSION}" CACHE STRING "") # not used yet
|
||||
SET(PYTHON_LIB python${PYTHON_VERSION})
|
||||
SET(PYTHON_LIBPATH "${PYTHON}/lib/python${PYTHON_VERSION}" CACHE STRING "")
|
||||
# SET(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
|
||||
@@ -378,7 +402,7 @@ IF(APPLE)
|
||||
SET(PYTHON /System/Library/Frameworks/Python.framework/Versions/)
|
||||
SET(PYTHON_VERSION 2.5)
|
||||
SET(PYTHON_INC "${PYTHON}${PYTHON_VERSION}/include/python${PYTHON_VERSION}" CACHE STRING "")
|
||||
SET(PYTHON_BINARY ${PYTHON}${PYTHON_VERSION}/bin/python${PYTHON_VERSION} CACHE STRING "")
|
||||
# SET(PYTHON_BINARY ${PYTHON}${PYTHON_VERSION}/bin/python${PYTHON_VERSION} CACHE STRING "") # not used yet
|
||||
SET(PYTHON_LIB "")
|
||||
SET(PYTHON_LIBPATH ${PYTHON}${PYTHON_VERSION}/lib/python${PYTHON_VERSION}/config CACHE STRING "")
|
||||
SET(PYTHON_LINKFLAGS "-u _PyMac_Error -framework System -framework Python")
|
||||
@@ -391,9 +415,9 @@ IF(APPLE)
|
||||
|
||||
IF(WITH_FFTW3)
|
||||
SET(FFTW3 ${LIBDIR}/fftw3)
|
||||
SET(FFTW3_INC ${FFTW3}/include)
|
||||
SET(FFTW3_LIB libfftw)
|
||||
SET(FFTW3_LIBPATH ${FFTW3}/lib)
|
||||
SET(FFTW3_INC ${FFTW3}/include)
|
||||
SET(FFTW3_LIB libfftw)
|
||||
SET(FFTW3_LIBPATH ${FFTW3}/lib)
|
||||
ENDIF(WITH_FFTW3)
|
||||
|
||||
SET(PNG_LIBRARIES png)
|
||||
@@ -404,9 +428,9 @@ IF(APPLE)
|
||||
SET(ZLIB_LIBRARIES z)
|
||||
|
||||
SET(FREETYPE ${LIBDIR}/freetype)
|
||||
SET(FREETYPE_INC ${FREETYPE}/include ${FREETYPE}/include/freetype2)
|
||||
SET(FREETYPE_INCLUDE_DIRS ${FREETYPE}/include ${FREETYPE}/include/freetype2)
|
||||
SET(FREETYPE_LIBPATH ${FREETYPE}/lib)
|
||||
SET(FREETYPE_LIB freetype)
|
||||
SET(FREETYPE_LIBRARY freetype)
|
||||
|
||||
SET(OPENEXR ${LIBDIR}/openexr)
|
||||
SET(OPENEXR_INC ${OPENEXR}/include/OpenEXR ${OPENEXR}/include)
|
||||
@@ -420,7 +444,7 @@ IF(APPLE)
|
||||
|
||||
SET(LIBSAMPLERATE ${LIBDIR}/samplerate)
|
||||
SET(LIBSAMPLERATE_INC ${LIBSAMPLERATE}/include)
|
||||
SET(LIBSAMPLERATE_LIB libsamplerate)
|
||||
SET(LIBSAMPLERATE_LIB samplerate)
|
||||
SET(LIBSAMPLERATE_LIBPATH ${LIBSAMPLERATE}/lib)
|
||||
|
||||
SET(LLIBS stdc++ SystemStubs)
|
||||
@@ -435,8 +459,8 @@ IF(APPLE)
|
||||
ENDIF(WITH_OPENMP)
|
||||
|
||||
SET(SDL ${LIBDIR}/sdl)
|
||||
SET(SDL_INC ${SDL}/include)
|
||||
SET(SDL_LIB SDL)
|
||||
SET(SDL_INCLUDE_DIR ${SDL}/include)
|
||||
SET(SDL_LIBRARY SDL)
|
||||
SET(SDL_LIBPATH ${SDL}/lib)
|
||||
|
||||
SET(PNG "${LIBDIR}/png")
|
||||
@@ -480,6 +504,9 @@ ENDIF(WITH_WEBPLUGIN)
|
||||
# Configure OpenGL.
|
||||
FIND_PACKAGE(OpenGL)
|
||||
INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
|
||||
# UNSET(OPENGL_LIBRARIES CACHE) # not compat with older cmake
|
||||
# UNSET(OPENGL_xmesa_INCLUDE_DIR CACHE) # not compat with older cmake
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Extra compile flags
|
||||
IF(WITH_GAMEENGINE)
|
||||
|
||||
15
SConstruct
15
SConstruct
@@ -60,7 +60,6 @@ B = tools.Blender
|
||||
platform = sys.platform
|
||||
quickie = None
|
||||
quickdebug = None
|
||||
nsis_build = None
|
||||
|
||||
##### BEGIN SETUP #####
|
||||
|
||||
@@ -425,8 +424,6 @@ if env['OURPLATFORM']=='darwin':
|
||||
bundle = '%s.app' % prg[0]
|
||||
bundledir = os.path.dirname(bundle)
|
||||
for dp, dn, df in os.walk(bundle):
|
||||
if 'CVS' in dn:
|
||||
dn.remove('CVS')
|
||||
if '.svn' in dn:
|
||||
dn.remove('.svn')
|
||||
dir=env['BF_INSTALLDIR']+dp[len(bundledir):]
|
||||
@@ -443,8 +440,6 @@ scriptinstall = []
|
||||
|
||||
if env['OURPLATFORM']!='darwin':
|
||||
for dp, dn, df in os.walk('bin/.blender'):
|
||||
if 'CVS' in dn:
|
||||
dn.remove('CVS')
|
||||
if '.svn' in dn:
|
||||
dn.remove('.svn')
|
||||
|
||||
@@ -471,8 +466,6 @@ if env['OURPLATFORM']!='darwin':
|
||||
scriptpaths=['release/scripts', 'release/ui', 'release/io']
|
||||
for scriptpath in scriptpaths:
|
||||
for dp, dn, df in os.walk(scriptpath):
|
||||
if 'CVS' in dn:
|
||||
dn.remove('CVS')
|
||||
if '.svn' in dn:
|
||||
dn.remove('.svn')
|
||||
dir=env['BF_INSTALLDIR']+'/.blender/'+os.path.basename(scriptpath)+dp[len(scriptpath):]
|
||||
@@ -485,8 +478,6 @@ if env['OURPLATFORM']=='linux2':
|
||||
icontargetlist = []
|
||||
|
||||
for tp, tn, tf in os.walk('release/freedesktop/icons'):
|
||||
if 'CVS' in tn:
|
||||
tn.remove('CVS')
|
||||
if '.svn' in tn:
|
||||
tn.remove('.svn')
|
||||
for f in tf:
|
||||
@@ -509,8 +500,6 @@ if env['OURPLATFORM']=='linuxcross':
|
||||
pluglist = []
|
||||
plugtargetlist = []
|
||||
for tp, tn, tf in os.walk('release/plugins'):
|
||||
if 'CVS' in tn:
|
||||
tn.remove('CVS')
|
||||
if '.svn' in tn:
|
||||
tn.remove('.svn')
|
||||
for f in tf:
|
||||
@@ -541,8 +530,6 @@ for targetdir,srcfile in zip(plugtargetlist, pluglist):
|
||||
textlist = []
|
||||
texttargetlist = []
|
||||
for tp, tn, tf in os.walk('release/text'):
|
||||
if 'CVS' in tn:
|
||||
tn.remove('CVS')
|
||||
if '.svn' in tn:
|
||||
tn.remove('.svn')
|
||||
for f in tf:
|
||||
@@ -599,6 +586,8 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-vc'):
|
||||
'${LCGDIR}/ffmpeg/lib/libx264-67.dll',
|
||||
'${LCGDIR}/ffmpeg/lib/xvidcore.dll',
|
||||
'${LCGDIR}/ffmpeg/lib/swscale-0.dll']
|
||||
if env['WITH_BF_JACK']:
|
||||
dllsources += ['${LCGDIR}/jack/lib/libjack.dll']
|
||||
windlls = env.Install(dir=env['BF_INSTALLDIR'], source = dllsources)
|
||||
allinstall += windlls
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ if BF_PYTHON_VERSION=='3.1':
|
||||
# BF_PYTHON_BINARY = '${BF_PYTHON}/bin/python${BF_PYTHON_VERSION}'
|
||||
BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION}'
|
||||
BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib/python${BF_PYTHON_VERSION}'
|
||||
# BF_PYTHON_LINKFLAGS = '-u _PyMac_Error -framework System'
|
||||
# BF_PYTHON_LINKFLAGS = ['-u', '_PyMac_Error', '-framework', 'System']
|
||||
else:
|
||||
# python 2.5 etc. uses built-in framework
|
||||
|
||||
@@ -79,9 +79,9 @@ else:
|
||||
BF_PYTHON_BINARY = '${BF_PYTHON}${BF_PYTHON_VERSION}/bin/python${BF_PYTHON_VERSION}'
|
||||
BF_PYTHON_LIB = ''
|
||||
BF_PYTHON_LIBPATH = '${BF_PYTHON}${BF_PYTHON_VERSION}/lib/python${BF_PYTHON_VERSION}/config'
|
||||
BF_PYTHON_LINKFLAGS = '-u _PyMac_Error -framework System -framework Python'
|
||||
BF_PYTHON_LINKFLAGS = ['-u','_PyMac_Error','-framework','System','-framework','Python']
|
||||
if MAC_CUR_VER=='10.3' or MAC_CUR_VER=='10.4':
|
||||
BF_PYTHON_LINKFLAGS ='-u __dummy '+BF_PYTHON_LINKFLAGS
|
||||
BF_PYTHON_LINKFLAGS = ['-u', '__dummy']+BF_PYTHON_LINKFLAGS
|
||||
|
||||
BF_QUIET = '1'
|
||||
WITH_BF_OPENMP = '0'
|
||||
@@ -112,6 +112,13 @@ BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
|
||||
BF_LIBSAMPLERATE_LIB = 'samplerate'
|
||||
BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
|
||||
|
||||
# TODO - set proper paths here (add precompiled to lib/ ? )
|
||||
WITH_BF_JACK = False
|
||||
BF_JACK = '/usr'
|
||||
BF_JACK_INC = '${BF_JACK}/include/jack'
|
||||
BF_JACK_LIB = 'jack'
|
||||
BF_JACK_LIBPATH = '${BF_JACK}/lib'
|
||||
|
||||
WITH_BF_SDL = True
|
||||
BF_SDL = LIBDIR + '/sdl' #$(shell sdl-config --prefix)
|
||||
BF_SDL_INC = '${BF_SDL}/include' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
|
||||
@@ -205,14 +212,14 @@ BF_ICONV_LIB = 'iconv'
|
||||
WITH_BF_STATICOPENGL = True
|
||||
BF_OPENGL_LIB = 'GL GLU'
|
||||
BF_OPENGL_LIBPATH = '/System/Library/Frameworks/OpenGL.framework/Libraries'
|
||||
BF_OPENGL_LINKFLAGS = '-framework OpenGL'
|
||||
BF_OPENGL_LINKFLAGS = ['-framework', 'OpenGL']
|
||||
|
||||
CFLAGS = ['-pipe','-fPIC','-funsigned-char']
|
||||
|
||||
CPPFLAGS = ['-fpascal-strings']
|
||||
CCFLAGS = ['-pipe','-fPIC','-funsigned-char','-fpascal-strings']
|
||||
CXXFLAGS = [ '-pipe','-fPIC','-funsigned-char', '-fpascal-strings']
|
||||
PLATFORM_LINKFLAGS = '-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Carbon -framework AGL -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework QuickTime'
|
||||
PLATFORM_LINKFLAGS = ['-fexceptions','-framework','CoreServices','-framework','Foundation','-framework','IOKit','-framework','AppKit','-framework','Carbon','-framework','AGL','-framework','AudioUnit','-framework','AudioToolbox','-framework','CoreAudio','-framework','QuickTime']
|
||||
|
||||
#note to build succesfully on 10.3.9 SDK you need to patch 10.3.9 by adding the SystemStubs.a lib from 10.4
|
||||
LLIBS = ['stdc++', 'SystemStubs']
|
||||
@@ -221,12 +228,12 @@ LLIBS = ['stdc++', 'SystemStubs']
|
||||
if MAC_MIN_VERS == '10.3':
|
||||
CFLAGS = ['-fuse-cxa-atexit']+CFLAGS
|
||||
CXXFLAGS = ['-fuse-cxa-atexit']+CXXFLAGS
|
||||
PLATFORM_LINKFLAGS = '-fuse-cxa-atexit '+PLATFORM_LINKFLAGS
|
||||
PLATFORM_LINKFLAGS = ['-fuse-cxa-atexit']+PLATFORM_LINKFLAGS
|
||||
LLIBS.append('crt3.o')
|
||||
|
||||
if USE_SDK==True:
|
||||
SDK_FLAGS=['-isysroot', MACOSX_SDK,'-mmacosx-version-min='+MAC_MIN_VERS]
|
||||
PLATFORM_LINKFLAGS = '-mmacosx-version-min='+MAC_MIN_VERS+ ' -Wl,-syslibroot,' + MACOSX_SDK+" "+PLATFORM_LINKFLAGS
|
||||
PLATFORM_LINKFLAGS = ['-mmacosx-version-min='+MAC_MIN_VERS, '-Wl,-syslibroot,' + MACOSX_SDK]+PLATFORM_LINKFLAGS
|
||||
CCFLAGS=SDK_FLAGS+CCFLAGS
|
||||
CXXFLAGS=SDK_FLAGS+CXXFLAGS
|
||||
|
||||
|
||||
@@ -27,6 +27,12 @@ BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
|
||||
BF_LIBSAMPLERATE_LIB = 'samplerate'
|
||||
BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
|
||||
|
||||
WITH_BF_JACK = False
|
||||
BF_JACK = '/usr'
|
||||
BF_JACK_INC = '${BF_JACK}/include/jack'
|
||||
BF_JACK_LIB = 'jack'
|
||||
BF_JACK_LIBPATH = '${BF_JACK}/lib'
|
||||
|
||||
WITH_BF_SDL = True
|
||||
BF_SDL = '/usr' #$(shell sdl-config --prefix)
|
||||
BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
|
||||
|
||||
@@ -31,6 +31,12 @@ BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
|
||||
BF_LIBSAMPLERATE_LIB = 'libsamplerate'
|
||||
BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
|
||||
|
||||
WITH_BF_JACK = False
|
||||
BF_JACK = LIBDIR + '/jack'
|
||||
BF_JACK_INC = '${BF_JACK}/include'
|
||||
BF_JACK_LIB = 'libjack'
|
||||
BF_JACK_LIBPATH = '${BF_JACK}/lib'
|
||||
|
||||
WITH_BF_SDL = True
|
||||
BF_SDL = LIBDIR + '/sdl'
|
||||
BF_SDL_INC = '${BF_SDL}/include'
|
||||
|
||||
@@ -37,6 +37,12 @@ BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
|
||||
BF_LIBSAMPLERATE_LIB = 'libsamplerate'
|
||||
BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
|
||||
|
||||
WITH_BF_JACK = False
|
||||
BF_JACK = LIBDIR + '/jack'
|
||||
BF_JACK_INC = '${BF_JACK}/include'
|
||||
BF_JACK_LIB = 'libjack'
|
||||
BF_JACK_LIBPATH = '${BF_JACK}/lib'
|
||||
|
||||
WITH_BF_SDL = True
|
||||
BF_SDL = LIBDIR + '/sdl'
|
||||
BF_SDL_INC = '${BF_SDL}/include'
|
||||
|
||||
5
extern/glew/CMakeLists.txt
vendored
5
extern/glew/CMakeLists.txt
vendored
@@ -26,8 +26,13 @@
|
||||
|
||||
SET(INC include src)
|
||||
|
||||
IF(UNIX)
|
||||
SET(INC ${INC} ${X11_X11_INCLUDE_PATH})
|
||||
ENDIF(UNIX)
|
||||
|
||||
SET(SRC
|
||||
src/glew.c
|
||||
)
|
||||
|
||||
BLENDERLIB(extern_glew "${SRC}" "${INC}")
|
||||
|
||||
|
||||
2
extern/libopenjpeg/CMakeLists.txt
vendored
2
extern/libopenjpeg/CMakeLists.txt
vendored
@@ -24,7 +24,7 @@
|
||||
#
|
||||
# ***** END GPL LICENSE BLOCK *****
|
||||
|
||||
SET(INC . src ${FREETYPE_INC})
|
||||
SET(INC . src)
|
||||
|
||||
FILE(GLOB SRC *.c except t1_generate_luts.c)
|
||||
ADD_DEFINITIONS(-DWITH_OPENJPEG)
|
||||
|
||||
@@ -31,22 +31,28 @@ IF(WITH_FFMPEG)
|
||||
ENDIF(WITH_FFMPEG)
|
||||
|
||||
IF(WITH_SDL)
|
||||
SET(INC ${INC} SDL ${SDL_INC})
|
||||
SET(INC ${INC} SDL ${SDL_INCLUDE_DIR})
|
||||
FILE(GLOB SDLSRC SDL/*.cpp)
|
||||
ADD_DEFINITIONS(-DWITH_SDL)
|
||||
ENDIF(WITH_SDL)
|
||||
|
||||
IF(WITH_OPENAL)
|
||||
SET(INC ${INC} OpenAL ${OPENAL_INC})
|
||||
SET(INC ${INC} OpenAL ${OPENAL_INCLUDE_DIR})
|
||||
FILE(GLOB OPENALSRC OpenAL/*.cpp)
|
||||
ADD_DEFINITIONS(-DWITH_OPENAL)
|
||||
|
||||
STRING(REGEX MATCH ".*ramework.*" FRAMEWORK ${OPENAL_INC})
|
||||
STRING(REGEX MATCH ".*ramework.*" FRAMEWORK ${OPENAL_INCLUDE_DIR})
|
||||
IF(FRAMEWORK)
|
||||
ADD_DEFINITIONS(-DAPPLE_FRAMEWORK_FIX)
|
||||
ENDIF(FRAMEWORK)
|
||||
ENDIF(WITH_OPENAL)
|
||||
|
||||
SET(SRC ${SRC} ${FFMPEGSRC} ${SDLSRC} ${OPENALSRC})
|
||||
IF(WITH_JACK)
|
||||
SET(INC ${INC} jack ${JACK_INC})
|
||||
FILE(GLOB JACKSRC jack/*.cpp)
|
||||
ADD_DEFINITIONS(-DWITH_JACK)
|
||||
ENDIF(WITH_JACK)
|
||||
|
||||
SET(SRC ${SRC} ${FFMPEGSRC} ${SDLSRC} ${OPENALSRC} ${JACKSRC})
|
||||
|
||||
BLENDERLIB(bf_audaspace "${SRC}" "${INC}")
|
||||
|
||||
@@ -51,8 +51,11 @@ install: $(ALL_OR_DEBUG)
|
||||
@[ -d $(NAN_AUDASPACE)/include ] || mkdir $(NAN_AUDASPACE)/include
|
||||
@[ -d $(NAN_AUDASPACE)/lib/$(DEBUG_DIR) ] || mkdir $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)
|
||||
@../tools/cpifdiff.sh $(DIR)/$(DEBUG_DIR)libaudaspace.a $(DIR)/$(DEBUG_DIR)libaud_fx.a $(DIR)/$(DEBUG_DIR)libaud_src.a $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)
|
||||
|
||||
ifeq ($(OS),darwin)
|
||||
ranlib $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)libaudaspace.a
|
||||
ranlib $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)libaud_src.a
|
||||
ranlib $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)libaud_fx.a
|
||||
endif
|
||||
@../tools/cpifdiff.sh intern/*.h $(NAN_AUDASPACE)/include/
|
||||
|
||||
|
||||
@@ -21,4 +21,9 @@ if env['WITH_BF_OPENAL']:
|
||||
incs += ' OpenAL ' + env['BF_OPENAL_INC']
|
||||
defs.append('WITH_OPENAL')
|
||||
|
||||
if env['WITH_BF_JACK']:
|
||||
sources += env.Glob('jack/*.cpp')
|
||||
incs += ' jack ' + env['BF_JACK_INC']
|
||||
defs.append('WITH_JACK')
|
||||
|
||||
env.BlenderLib ('bf_audaspace', sources, Split(incs), defs, libtype=['intern'], priority = [25] )
|
||||
|
||||
@@ -27,13 +27,11 @@
|
||||
#include "AUD_SDLDevice.h"
|
||||
#include "AUD_IReader.h"
|
||||
|
||||
#include <SDL.h>
|
||||
|
||||
// this is the callback function for SDL, it only calls the class
|
||||
void mixAudio(void *data, Uint8* buffer, int length)
|
||||
void AUD_SDLDevice::SDL_mix(void *data, Uint8* buffer, int length)
|
||||
{
|
||||
AUD_SDLDevice* device = (AUD_SDLDevice*)data;
|
||||
device->SDLmix((sample_t *)buffer, length);
|
||||
|
||||
device->mix((sample_t*)buffer, length/AUD_SAMPLE_SIZE(device->m_specs));
|
||||
}
|
||||
|
||||
AUD_SDLDevice::AUD_SDLDevice(AUD_Specs specs, int buffersize)
|
||||
@@ -56,7 +54,7 @@ AUD_SDLDevice::AUD_SDLDevice(AUD_Specs specs, int buffersize)
|
||||
format.format = AUDIO_S16SYS;
|
||||
format.channels = m_specs.channels;
|
||||
format.samples = buffersize;
|
||||
format.callback = &mixAudio;
|
||||
format.callback = AUD_SDLDevice::SDL_mix;
|
||||
format.userdata = this;
|
||||
|
||||
if(SDL_OpenAudio(&format, &obtained) != 0)
|
||||
@@ -86,11 +84,6 @@ AUD_SDLDevice::~AUD_SDLDevice()
|
||||
destroy();
|
||||
}
|
||||
|
||||
void AUD_SDLDevice::SDLmix(sample_t* buffer, int length)
|
||||
{
|
||||
mix(buffer, length/AUD_SAMPLE_SIZE(m_specs));
|
||||
}
|
||||
|
||||
void AUD_SDLDevice::playing(bool playing)
|
||||
{
|
||||
SDL_PauseAudio(playing ? 0 : 1);
|
||||
|
||||
@@ -28,11 +28,22 @@
|
||||
|
||||
#include "AUD_SoftwareDevice.h"
|
||||
|
||||
#include <SDL.h>
|
||||
|
||||
/**
|
||||
* This device plays back through SDL, the simple direct media layer.
|
||||
*/
|
||||
class AUD_SDLDevice : public AUD_SoftwareDevice
|
||||
{
|
||||
private:
|
||||
/**
|
||||
* Mixes the next bytes into the buffer.
|
||||
* \param data The SDL device.
|
||||
* \param buffer The target buffer.
|
||||
* \param length The length in bytes to be filled.
|
||||
*/
|
||||
static void SDL_mix(void *data, Uint8* buffer, int length);
|
||||
|
||||
protected:
|
||||
virtual void playing(bool playing);
|
||||
|
||||
@@ -50,14 +61,6 @@ public:
|
||||
* Closes the SDL audio device.
|
||||
*/
|
||||
virtual ~AUD_SDLDevice();
|
||||
|
||||
/**
|
||||
* Mixes the next bytes into the buffer.
|
||||
* \param buffer The target buffer.
|
||||
* \param length The length in bytes to be filled.
|
||||
* \warning This function shall not be called from outside!
|
||||
*/
|
||||
void SDLmix(sample_t* buffer, int length);
|
||||
};
|
||||
|
||||
#endif //AUD_SDLDEVICE
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#
|
||||
#
|
||||
|
||||
LIBNAME = SDLaudaspace
|
||||
LIBNAME = aud_sdl
|
||||
DIR = $(OCGDIR)/intern/$(LIBNAME)
|
||||
|
||||
include nan_compile.mk
|
||||
|
||||
@@ -35,6 +35,7 @@ include nan_compile.mk
|
||||
|
||||
CCFLAGS += $(LEVEL_1_CPP_WARNINGS)
|
||||
|
||||
CPPFLAGS += -I$(LCGDIR)/samplerate/include/
|
||||
CPPFLAGS += -I../ffmpeg
|
||||
CPPFLAGS += -I../FX
|
||||
CPPFLAGS += -I../SDL
|
||||
|
||||
@@ -34,7 +34,7 @@ extern "C" {
|
||||
#include <libavformat/avformat.h>
|
||||
}
|
||||
|
||||
// This function transforms a FFMPEG SampleFormat to or own sample format
|
||||
// This function transforms a FFMPEG SampleFormat to our own sample format
|
||||
static inline AUD_SampleFormat FFMPEG_TO_AUD(SampleFormat fmt)
|
||||
{
|
||||
switch(fmt)
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#
|
||||
#
|
||||
|
||||
LIBNAME = ffmpegaudaspace
|
||||
LIBNAME = aud_ffmpeg
|
||||
DIR = $(OCGDIR)/intern/$(LIBNAME)
|
||||
|
||||
include nan_compile.mk
|
||||
|
||||
@@ -23,10 +23,6 @@
|
||||
* ***** END LGPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
/*#define WITH_SDL
|
||||
#define WITH_FFMPEG
|
||||
#define WITH_OPENAL*/
|
||||
|
||||
#include "AUD_NULLDevice.h"
|
||||
#include "AUD_I3DDevice.h"
|
||||
#include "AUD_StreamBufferFactory.h"
|
||||
@@ -47,6 +43,10 @@
|
||||
#include "AUD_OpenALDevice.h"
|
||||
#endif
|
||||
|
||||
#ifdef WITH_JACK
|
||||
#include "AUD_JackDevice.h"
|
||||
#endif
|
||||
|
||||
#ifdef WITH_FFMPEG
|
||||
#include "AUD_FFMPEGFactory.h"
|
||||
extern "C" {
|
||||
@@ -97,6 +97,11 @@ int AUD_init(AUD_DeviceType device, AUD_Specs specs, int buffersize)
|
||||
case AUD_OPENAL_DEVICE:
|
||||
dev = new AUD_OpenALDevice(specs, buffersize);
|
||||
break;
|
||||
#endif
|
||||
#ifdef WITH_JACK
|
||||
case AUD_JACK_DEVICE:
|
||||
dev = new AUD_JackDevice(specs);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
return false;
|
||||
@@ -125,6 +130,9 @@ int* AUD_enumDevices()
|
||||
#endif
|
||||
#ifdef WITH_OPENAL
|
||||
AUD_available_devices[i++] = AUD_OPENAL_DEVICE;
|
||||
#endif
|
||||
#ifdef WITH_JACK
|
||||
AUD_available_devices[i++] = AUD_JACK_DEVICE;
|
||||
#endif
|
||||
AUD_available_devices[i++] = AUD_NULL_DEVICE;
|
||||
return AUD_available_devices;
|
||||
|
||||
@@ -36,7 +36,8 @@ typedef enum
|
||||
{
|
||||
AUD_NULL_DEVICE = 0,
|
||||
AUD_SDL_DEVICE,
|
||||
AUD_OPENAL_DEVICE
|
||||
AUD_OPENAL_DEVICE,
|
||||
AUD_JACK_DEVICE
|
||||
} AUD_DeviceType;
|
||||
|
||||
typedef struct
|
||||
|
||||
@@ -60,6 +60,8 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
|
||||
case AUD_FORMAT_FLOAT64:
|
||||
m_convert = AUD_convert_u8_double;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case AUD_FORMAT_S16:
|
||||
@@ -86,6 +88,8 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
|
||||
case AUD_FORMAT_FLOAT64:
|
||||
m_convert = AUD_convert_s16_double;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case AUD_FORMAT_S24:
|
||||
@@ -110,6 +114,8 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
|
||||
case AUD_FORMAT_FLOAT64:
|
||||
m_convert = AUD_convert_double_s24_be;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
else
|
||||
switch(specs.format)
|
||||
@@ -132,6 +138,8 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
|
||||
case AUD_FORMAT_FLOAT64:
|
||||
m_convert = AUD_convert_double_s24_le;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case AUD_FORMAT_S32:
|
||||
@@ -158,6 +166,8 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
|
||||
case AUD_FORMAT_FLOAT64:
|
||||
m_convert = AUD_convert_s32_double;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case AUD_FORMAT_FLOAT32:
|
||||
@@ -184,6 +194,8 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
|
||||
case AUD_FORMAT_FLOAT64:
|
||||
m_convert = AUD_convert_float_double;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case AUD_FORMAT_FLOAT64:
|
||||
@@ -210,8 +222,12 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
|
||||
case AUD_FORMAT_FLOAT64:
|
||||
m_convert = AUD_convert_copy<double>;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
m_specs.format = specs.format;
|
||||
|
||||
@@ -125,6 +125,8 @@ void AUD_FloatMixer::setSpecs(AUD_Specs specs)
|
||||
case AUD_FORMAT_FLOAT64:
|
||||
m_convert = AUD_convert_float_double;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -180,7 +180,8 @@ typedef enum
|
||||
AUD_ERROR_FILE,
|
||||
AUD_ERROR_FFMPEG,
|
||||
AUD_ERROR_SDL,
|
||||
AUD_ERROR_OPENAL
|
||||
AUD_ERROR_OPENAL,
|
||||
AUD_ERROR_JACK
|
||||
} AUD_Error;
|
||||
|
||||
/// Message codes.
|
||||
|
||||
@@ -35,6 +35,7 @@ include nan_compile.mk
|
||||
|
||||
CCFLAGS += $(LEVEL_1_CPP_WARNINGS)
|
||||
|
||||
CPPFLAGS += -I$(LCGDIR)/samplerate/include/
|
||||
CPPFLAGS += -I../ffmpeg
|
||||
CPPFLAGS += -I../FX
|
||||
CPPFLAGS += -I../SDL
|
||||
|
||||
149
intern/audaspace/jack/AUD_JackDevice.cpp
Normal file
149
intern/audaspace/jack/AUD_JackDevice.cpp
Normal file
@@ -0,0 +1,149 @@
|
||||
/*
|
||||
* $Id$
|
||||
*
|
||||
* ***** BEGIN LGPL LICENSE BLOCK *****
|
||||
*
|
||||
* Copyright 2009 Jörg Hermann Müller
|
||||
*
|
||||
* This file is part of AudaSpace.
|
||||
*
|
||||
* AudaSpace is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* AudaSpace is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with AudaSpace. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* ***** END LGPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
#include "AUD_FloatMixer.h"
|
||||
#include "AUD_JackDevice.h"
|
||||
#include "AUD_IReader.h"
|
||||
#include "AUD_Buffer.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
// AUD_XXX this is not realtime suitable!
|
||||
int AUD_JackDevice::jack_mix(jack_nframes_t length, void *data)
|
||||
{
|
||||
AUD_JackDevice* device = (AUD_JackDevice*)data;
|
||||
int samplesize = AUD_SAMPLE_SIZE(device->m_specs);
|
||||
if(device->m_buffer->getSize() < samplesize * length)
|
||||
device->m_buffer->resize(samplesize * length);
|
||||
device->mix(device->m_buffer->getBuffer(), length);
|
||||
|
||||
float* in = (float*) device->m_buffer->getBuffer();
|
||||
float* out;
|
||||
int count = device->m_specs.channels;
|
||||
|
||||
for(int i = 0; i < count; i++)
|
||||
{
|
||||
out = (float*)jack_port_get_buffer(device->m_ports[i], length);
|
||||
for(int j = 0; j < length; j++)
|
||||
out[j] = in[j * count + i];
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void AUD_JackDevice::jack_shutdown(void *data)
|
||||
{
|
||||
AUD_JackDevice* device = (AUD_JackDevice*)data;
|
||||
device->m_valid = false;
|
||||
}
|
||||
|
||||
AUD_JackDevice::AUD_JackDevice(AUD_Specs specs)
|
||||
{
|
||||
if(specs.channels == AUD_CHANNELS_INVALID)
|
||||
specs.channels = AUD_CHANNELS_STEREO;
|
||||
|
||||
// jack uses floats
|
||||
m_specs = specs;
|
||||
m_specs.format = AUD_FORMAT_FLOAT32;
|
||||
|
||||
jack_options_t options = JackNullOption;
|
||||
jack_status_t status;
|
||||
|
||||
// open client
|
||||
m_client = jack_client_open("Blender", options, &status);
|
||||
if(m_client == NULL)
|
||||
AUD_THROW(AUD_ERROR_JACK);
|
||||
|
||||
m_buffer = new AUD_Buffer(); AUD_NEW("buffer");
|
||||
|
||||
// set callbacks
|
||||
jack_set_process_callback(m_client, AUD_JackDevice::jack_mix, this);
|
||||
jack_on_shutdown(m_client, AUD_JackDevice::jack_shutdown, this);
|
||||
|
||||
// register our output channels which are called ports in jack
|
||||
m_ports = new jack_port_t*[m_specs.channels]; AUD_NEW("jack_port")
|
||||
|
||||
try
|
||||
{
|
||||
char portname[64];
|
||||
for(int i = 0; i < m_specs.channels; i++)
|
||||
{
|
||||
sprintf(portname, "out %d", i+1);
|
||||
m_ports[i] = jack_port_register(m_client, portname,
|
||||
JACK_DEFAULT_AUDIO_TYPE,
|
||||
JackPortIsOutput, 0);
|
||||
if(m_ports[i] == NULL)
|
||||
AUD_THROW(AUD_ERROR_JACK);
|
||||
}
|
||||
|
||||
m_specs.rate = (AUD_SampleRate)jack_get_sample_rate(m_client);
|
||||
|
||||
// activate the client
|
||||
if(jack_activate(m_client))
|
||||
AUD_THROW(AUD_ERROR_JACK);
|
||||
}
|
||||
catch(AUD_Exception e)
|
||||
{
|
||||
jack_client_close(m_client);
|
||||
delete[] m_ports; AUD_DELETE("jack_port")
|
||||
delete m_buffer; AUD_DELETE("buffer");
|
||||
throw;
|
||||
}
|
||||
|
||||
const char** ports = jack_get_ports(m_client, NULL, NULL,
|
||||
JackPortIsPhysical | JackPortIsInput);
|
||||
if(ports != NULL)
|
||||
{
|
||||
for(int i = 0; i < m_specs.channels && ports[i]; i++)
|
||||
jack_connect(m_client, jack_port_name(m_ports[i]), ports[i]);
|
||||
|
||||
free(ports);
|
||||
}
|
||||
|
||||
m_mixer = new AUD_FloatMixer(); AUD_NEW("mixer")
|
||||
m_mixer->setSpecs(m_specs);
|
||||
|
||||
m_valid = true;
|
||||
|
||||
create();
|
||||
}
|
||||
|
||||
AUD_JackDevice::~AUD_JackDevice()
|
||||
{
|
||||
lock();
|
||||
if(m_valid)
|
||||
jack_client_close(m_client);
|
||||
delete[] m_ports; AUD_DELETE("jack_port")
|
||||
delete m_buffer; AUD_DELETE("buffer");
|
||||
unlock();
|
||||
|
||||
destroy();
|
||||
}
|
||||
|
||||
void AUD_JackDevice::playing(bool playing)
|
||||
{
|
||||
// Do nothing.
|
||||
}
|
||||
91
intern/audaspace/jack/AUD_JackDevice.h
Normal file
91
intern/audaspace/jack/AUD_JackDevice.h
Normal file
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
* $Id$
|
||||
*
|
||||
* ***** BEGIN LGPL LICENSE BLOCK *****
|
||||
*
|
||||
* Copyright 2009 Jörg Hermann Müller
|
||||
*
|
||||
* This file is part of AudaSpace.
|
||||
*
|
||||
* AudaSpace is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* AudaSpace is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with AudaSpace. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* ***** END LGPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
#ifndef AUD_JACKDEVICE
|
||||
#define AUD_JACKDEVICE
|
||||
|
||||
#include "AUD_SoftwareDevice.h"
|
||||
class AUD_Buffer;
|
||||
|
||||
#include <jack.h>
|
||||
|
||||
/**
|
||||
* This device plays back through Jack.
|
||||
*/
|
||||
class AUD_JackDevice : public AUD_SoftwareDevice
|
||||
{
|
||||
private:
|
||||
/**
|
||||
* The output ports of jack.
|
||||
*/
|
||||
jack_port_t** m_ports;
|
||||
|
||||
/**
|
||||
* The jack client.
|
||||
*/
|
||||
jack_client_t* m_client;
|
||||
|
||||
/**
|
||||
* The output buffer.
|
||||
*/
|
||||
AUD_Buffer* m_buffer;
|
||||
|
||||
/**
|
||||
* Whether the device is valid.
|
||||
*/
|
||||
bool m_valid;
|
||||
|
||||
/**
|
||||
* Invalidates the jack device.
|
||||
* \param data The jack device that gets invalidet by jack.
|
||||
*/
|
||||
static void jack_shutdown(void *data);
|
||||
|
||||
/**
|
||||
* Mixes the next bytes into the buffer.
|
||||
* \param length The length in samples to be filled.
|
||||
* \param data A pointer to the jack device.
|
||||
* \return 0 what shows success.
|
||||
*/
|
||||
static int jack_mix(jack_nframes_t length, void *data);
|
||||
|
||||
protected:
|
||||
virtual void playing(bool playing);
|
||||
|
||||
public:
|
||||
/**
|
||||
* Creates a Jack client for audio output.
|
||||
* \param specs The wanted audio specification, where only the channel count is important.
|
||||
* \exception AUD_Exception Thrown if the audio device cannot be opened.
|
||||
*/
|
||||
AUD_JackDevice(AUD_Specs specs);
|
||||
|
||||
/**
|
||||
* Closes the Jack client.
|
||||
*/
|
||||
virtual ~AUD_JackDevice();
|
||||
};
|
||||
|
||||
#endif //AUD_JACKDEVICE
|
||||
40
intern/audaspace/jack/Makefile
Normal file
40
intern/audaspace/jack/Makefile
Normal file
@@ -0,0 +1,40 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
# All rights reserved.
|
||||
#
|
||||
# The Original Code is: all of this file.
|
||||
#
|
||||
# Contributor(s): GSR
|
||||
#
|
||||
# ***** END GPL LICENSE BLOCK *****
|
||||
#
|
||||
#
|
||||
|
||||
LIBNAME = aud_jack
|
||||
DIR = $(OCGDIR)/intern/audaspace
|
||||
|
||||
include nan_compile.mk
|
||||
|
||||
CCFLAGS += $(LEVEL_1_CPP_WARNINGS)
|
||||
|
||||
CPPFLAGS += -I../intern
|
||||
CPPFLAGS += -I..
|
||||
CPPFLAGS += -I.
|
||||
@@ -24,7 +24,7 @@
|
||||
#
|
||||
# ***** END GPL LICENSE BLOCK *****
|
||||
|
||||
SET(INC ${PNG_INC} ${ZLIB_INC} ${SDL_INC} extern)
|
||||
SET(INC ${PNG_INC} ${ZLIB_INC} extern)
|
||||
|
||||
FILE(GLOB SRC intern/*.cpp)
|
||||
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
{
|
||||
if(doReduce) {
|
||||
// synchronize global vars
|
||||
for(int j=0; j<calcListFull.size() ; j++) mListFull.push_back( calcListFull[j] );
|
||||
for(int j=0; j<calcListEmpty.size(); j++) mListEmpty.push_back( calcListEmpty[j] );
|
||||
for(int j=0; j<calcListParts.size(); j++) mpParticles->addFullParticle( calcListParts[j] );
|
||||
for(size_t j=0; j<calcListFull.size() ; j++) mListFull.push_back( calcListFull[j] );
|
||||
for(size_t j=0; j<calcListEmpty.size(); j++) mListEmpty.push_back( calcListEmpty[j] );
|
||||
for(size_t j=0; j<calcListParts.size(); j++) mpParticles->addFullParticle( calcListParts[j] );
|
||||
if(calcMaxVlen>mMaxVlen) {
|
||||
mMxvx = calcMxvx;
|
||||
mMxvy = calcMxvy;
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#
|
||||
# ***** END GPL LICENSE BLOCK *****
|
||||
|
||||
SET(INC . ../string ${WINTAB_INC})
|
||||
SET(INC . ../string)
|
||||
|
||||
FILE(GLOB SRC intern/*.cpp)
|
||||
|
||||
@@ -37,6 +37,7 @@ IF(APPLE)
|
||||
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowX11.cpp")
|
||||
ELSE(APPLE)
|
||||
IF(WIN32)
|
||||
SET(INC ${INC} ${WINTAB_INC})
|
||||
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_DisplayManagerCarbon.cpp")
|
||||
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_SystemCarbon.cpp")
|
||||
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowCarbon.cpp")
|
||||
@@ -44,6 +45,7 @@ ELSE(APPLE)
|
||||
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_SystemX11.cpp")
|
||||
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowX11.cpp")
|
||||
ELSE(WIN32)
|
||||
SET(INC ${INC} ${X11_X11_INCLUDE_PATH})
|
||||
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_DisplayManagerWin32.cpp")
|
||||
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_SystemWin32.cpp")
|
||||
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowWin32.cpp")
|
||||
|
||||
@@ -82,7 +82,7 @@ typedef unsigned long uintptr_t;
|
||||
#define _UINTPTR_T_DEFINED
|
||||
#endif
|
||||
|
||||
#elif defined(__linux__)
|
||||
#elif defined(__linux__) || defined(__NetBSD__)
|
||||
|
||||
/* Linux-i386, Linux-Alpha, Linux-ppc */
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -83,7 +83,7 @@ typedef unsigned long uintptr_t;
|
||||
#define _UINTPTR_T_DEFINED
|
||||
#endif
|
||||
|
||||
#elif defined(__linux__)
|
||||
#elif defined(__linux__) || defined(__NetBSD__)
|
||||
|
||||
/* Linux-i386, Linux-Alpha, Linux-ppc */
|
||||
#include <stdint.h>
|
||||
|
||||
6
intern/smoke/extern/smoke_API.h
vendored
6
intern/smoke/extern/smoke_API.h
vendored
@@ -36,7 +36,7 @@ struct FLUID_3D *smoke_init(int *res, float *p0, float dt);
|
||||
void smoke_free(struct FLUID_3D *fluid);
|
||||
|
||||
void smoke_initBlenderRNA(struct FLUID_3D *fluid, float *alpha, float *beta);
|
||||
void smoke_step(struct FLUID_3D *fluid);
|
||||
void smoke_step(struct FLUID_3D *fluid, size_t framenr);
|
||||
|
||||
float *smoke_get_density(struct FLUID_3D *fluid);
|
||||
float *smoke_get_heat(struct FLUID_3D *fluid);
|
||||
@@ -49,6 +49,8 @@ unsigned char *smoke_get_obstacle(struct FLUID_3D *fluid);
|
||||
size_t smoke_get_index(int x, int max_x, int y, int max_y, int z);
|
||||
size_t smoke_get_index2d(int x, int max_x, int y);
|
||||
|
||||
void smoke_dissolve(struct FLUID_3D *fluid, int speed, int log);
|
||||
|
||||
// wavelet turbulence functions
|
||||
struct WTURBULENCE *smoke_turbulence_init(int *res, int amplify, int noisetype);
|
||||
void smoke_turbulence_free(struct WTURBULENCE *wt);
|
||||
@@ -59,6 +61,8 @@ void smoke_turbulence_get_res(struct WTURBULENCE *wt, int *res);
|
||||
void smoke_turbulence_set_noise(struct WTURBULENCE *wt, int type);
|
||||
void smoke_initWaveletBlenderRNA(struct WTURBULENCE *wt, float *strength);
|
||||
|
||||
void smoke_dissolve_wavelet(struct WTURBULENCE *wt, int speed, int log);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -101,6 +101,8 @@ FLUID_3D::FLUID_3D(int *res, float *p0, float dt) :
|
||||
_h = new float[_totalCells];
|
||||
_Precond = new float[_totalCells];
|
||||
|
||||
// DG TODO: check if alloc went fine
|
||||
|
||||
for (int x = 0; x < _totalCells; x++)
|
||||
{
|
||||
_density[x] = 0.0f;
|
||||
@@ -219,7 +221,10 @@ void FLUID_3D::step()
|
||||
{
|
||||
// wipe forces
|
||||
for (int i = 0; i < _totalCells; i++)
|
||||
{
|
||||
_xForce[i] = _yForce[i] = _zForce[i] = 0.0f;
|
||||
_obstacles[i] &= ~2;
|
||||
}
|
||||
|
||||
wipeBoundaries();
|
||||
|
||||
@@ -683,16 +688,17 @@ void FLUID_3D::advectMacCormack()
|
||||
|
||||
const float dt0 = _dt / _dx;
|
||||
// use force arrays as temp arrays
|
||||
for (int x = 0; x < _totalCells; x++)
|
||||
_xForce[x] = _yForce[x] = 0.0;
|
||||
for (int x = 0; x < _totalCells; x++)
|
||||
_xForce[x] = _yForce[x] = 0.0;
|
||||
|
||||
float* t1 = _xForce;
|
||||
float* t2 = _yForce;
|
||||
|
||||
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _densityOld, _density, t1,t2, res, NULL);
|
||||
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _heatOld, _heat, t1,t2, res, NULL);
|
||||
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _xVelocityOld, _xVelocity, t1,t2, res, NULL);
|
||||
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _yVelocityOld, _yVelocity, t1,t2, res, NULL);
|
||||
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _zVelocityOld, _zVelocity, t1,t2, res, NULL);
|
||||
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _densityOld, _density, t1,t2, res, _obstacles);
|
||||
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _heatOld, _heat, t1,t2, res, _obstacles);
|
||||
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _xVelocityOld, _xVelocity, t1,t2, res, _obstacles);
|
||||
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _yVelocityOld, _yVelocity, t1,t2, res, _obstacles);
|
||||
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _zVelocityOld, _zVelocity, t1,t2, res, _obstacles);
|
||||
|
||||
if(DOMAIN_BC_LEFT == 0) copyBorderX(_xVelocity, res);
|
||||
else setZeroX(_xVelocity, res);
|
||||
|
||||
@@ -161,13 +161,13 @@ class FLUID_3D
|
||||
static void advectFieldSemiLagrange(const float dt, const float* velx, const float* vely, const float* velz,
|
||||
float* oldField, float* newField, Vec3Int res);
|
||||
static void advectFieldMacCormack(const float dt, const float* xVelocity, const float* yVelocity, const float* zVelocity,
|
||||
float* oldField, float* newField, float* temp1, float* temp2, Vec3Int res, const float* obstacles);
|
||||
float* oldField, float* newField, float* temp1, float* temp2, Vec3Int res, const unsigned char* obstacles);
|
||||
|
||||
// maccormack helper functions
|
||||
static void clampExtrema(const float dt, const float* xVelocity, const float* yVelocity, const float* zVelocity,
|
||||
float* oldField, float* newField, Vec3Int res);
|
||||
static void clampOutsideRays(const float dt, const float* xVelocity, const float* yVelocity, const float* zVelocity,
|
||||
float* oldField, float* newField, Vec3Int res, const float* obstacles, const float *oldAdvection);
|
||||
float* oldField, float* newField, Vec3Int res, const unsigned char* obstacles, const float *oldAdvection);
|
||||
|
||||
// output helper functions
|
||||
// static void writeImageSliceXY(const float *field, Vec3Int res, int slice, string prefix, int picCnt, float scale=1.);
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
|
||||
void FLUID_3D::solvePressurePre(float* field, float* b, unsigned char* skip)
|
||||
{
|
||||
size_t x, y, z, index;
|
||||
int x, y, z;
|
||||
size_t index;
|
||||
|
||||
// i = 0
|
||||
int i = 0;
|
||||
@@ -197,7 +198,8 @@ void FLUID_3D::solvePressurePre(float* field, float* b, unsigned char* skip)
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
void FLUID_3D::solvePressure(float* field, float* b, unsigned char* skip)
|
||||
{
|
||||
size_t x, y, z, index;
|
||||
int x, y, z;
|
||||
size_t index;
|
||||
|
||||
// i = 0
|
||||
int i = 0;
|
||||
@@ -348,7 +350,8 @@ void FLUID_3D::solvePressure(float* field, float* b, unsigned char* skip)
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
void FLUID_3D::solveHeat(float* field, float* b, unsigned char* skip)
|
||||
{
|
||||
size_t x, y, z, index;
|
||||
int x, y, z;
|
||||
size_t index;
|
||||
const float heatConst = _dt * _heatDiffusion / (_dx * _dx);
|
||||
|
||||
// i = 0
|
||||
|
||||
@@ -338,7 +338,7 @@ void FLUID_3D::advectFieldSemiLagrange(const float dt, const float* velx, const
|
||||
// comments are the pseudocode from selle's paper
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
void FLUID_3D::advectFieldMacCormack(const float dt, const float* xVelocity, const float* yVelocity, const float* zVelocity,
|
||||
float* oldField, float* newField, float* temp1, float* temp2, Vec3Int res, const float* obstacles)
|
||||
float* oldField, float* newField, float* temp1, float* temp2, Vec3Int res, const unsigned char* obstacles)
|
||||
{
|
||||
float* phiHatN = temp1;
|
||||
float* phiHatN1 = temp2;
|
||||
@@ -459,7 +459,7 @@ void FLUID_3D::clampExtrema(const float dt, const float* velx, const float* vely
|
||||
// incorrect
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
void FLUID_3D::clampOutsideRays(const float dt, const float* velx, const float* vely, const float* velz,
|
||||
float* oldField, float* newField, Vec3Int res, const float* obstacles, const float *oldAdvection)
|
||||
float* oldField, float* newField, Vec3Int res, const unsigned char* obstacles, const float *oldAdvection)
|
||||
{
|
||||
const int sx= res[0];
|
||||
const int sy= res[1];
|
||||
|
||||
@@ -926,7 +926,9 @@ inline void hsvToRgb( VECTOR_TYPE &V )
|
||||
|
||||
//! global string for formatting vector output in utilities.cpp
|
||||
//extern const char *globVecFormatStr;
|
||||
#if 0
|
||||
static const char *globVecFormatStr = "[%6.4f,%6.4f,%6.4f]";
|
||||
#endif
|
||||
|
||||
/*************************************************************************
|
||||
Outputs the object in human readable form using the format
|
||||
|
||||
@@ -220,7 +220,7 @@ static bool loadTile(float* const noiseTileData, std::string filename)
|
||||
}
|
||||
|
||||
// dimensions
|
||||
int gridSize = noiseTileSize * noiseTileSize * noiseTileSize;
|
||||
size_t gridSize = noiseTileSize * noiseTileSize * noiseTileSize;
|
||||
|
||||
// noiseTileData memory is managed by caller
|
||||
size_t bread = fread((void*)noiseTileData, sizeof(float), gridSize, file);
|
||||
@@ -228,7 +228,7 @@ static bool loadTile(float* const noiseTileData, std::string filename)
|
||||
printf("Noise tile file '%s' loaded.\n", filename.c_str());
|
||||
|
||||
if (bread != gridSize) {
|
||||
printf("loadTile: Noise tile '%s' is wrong size %d.\n", filename.c_str(), bread);
|
||||
printf("loadTile: Noise tile '%s' is wrong size %d.\n", filename.c_str(), (int)bread);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -63,7 +63,18 @@ extern "C" void smoke_turbulence_free(WTURBULENCE *wt)
|
||||
wt = NULL;
|
||||
}
|
||||
|
||||
extern "C" void smoke_step(FLUID_3D *fluid)
|
||||
extern "C" size_t smoke_get_index(int x, int max_x, int y, int max_y, int z /*, int max_z */)
|
||||
{
|
||||
// // const int index = x + y * smd->res[0] + z * smd->res[0]*smd->res[1];
|
||||
return x + y * max_x + z * max_x*max_y;
|
||||
}
|
||||
|
||||
extern "C" size_t smoke_get_index2d(int x, int max_x, int y /*, int max_y, int z, int max_z */)
|
||||
{
|
||||
return x + y * max_x;
|
||||
}
|
||||
|
||||
extern "C" void smoke_step(FLUID_3D *fluid, size_t framenr)
|
||||
{
|
||||
fluid->step();
|
||||
}
|
||||
@@ -79,6 +90,88 @@ extern "C" void smoke_initBlenderRNA(FLUID_3D *fluid, float *alpha, float *beta)
|
||||
fluid->initBlenderRNA(alpha, beta);
|
||||
}
|
||||
|
||||
extern "C" void smoke_dissolve(FLUID_3D *fluid, int speed, int log)
|
||||
{
|
||||
float *density = fluid->_density;
|
||||
//float *densityOld = fluid->_densityOld;
|
||||
float *heat = fluid->_heat;
|
||||
|
||||
if(log)
|
||||
{
|
||||
/* max density/speed = dydx */
|
||||
float dydx = 1.0 / (float)speed;
|
||||
size_t size= fluid->_xRes * fluid->_yRes * fluid->_zRes;
|
||||
|
||||
for(size_t i = 0; i < size; i++)
|
||||
{
|
||||
density[i] *= (1.0 - dydx);
|
||||
|
||||
if(density[i] < 0.0f)
|
||||
density[i] = 0.0f;
|
||||
|
||||
heat[i] *= (1.0 - dydx);
|
||||
|
||||
if(heat[i] < 0.0f)
|
||||
heat[i] = 0.0f;
|
||||
}
|
||||
}
|
||||
else // linear falloff
|
||||
{
|
||||
/* max density/speed = dydx */
|
||||
float dydx = 1.0 / (float)speed;
|
||||
size_t size= fluid->_xRes * fluid->_yRes * fluid->_zRes;
|
||||
|
||||
for(size_t i = 0; i < size; i++)
|
||||
{
|
||||
density[i] -= dydx;
|
||||
|
||||
if(density[i] < 0.0f)
|
||||
density[i] = 0.0f;
|
||||
|
||||
heat[i] -= dydx;
|
||||
|
||||
if(heat[i] < 0.0f)
|
||||
heat[i] = 0.0f;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" void smoke_dissolve_wavelet(WTURBULENCE *wt, int speed, int log)
|
||||
{
|
||||
float *density = wt->getDensityBig();
|
||||
Vec3Int r = wt->getResBig();
|
||||
|
||||
if(log)
|
||||
{
|
||||
/* max density/speed = dydx */
|
||||
float dydx = 1.0 / (float)speed;
|
||||
size_t size= r[0] * r[1] * r[2];
|
||||
|
||||
for(size_t i = 0; i < size; i++)
|
||||
{
|
||||
density[i] *= (1.0 - dydx);
|
||||
|
||||
if(density[i] < 0.0f)
|
||||
density[i] = 0.0f;
|
||||
}
|
||||
}
|
||||
else // linear falloff
|
||||
{
|
||||
/* max density/speed = dydx */
|
||||
float dydx = 1.0 / (float)speed;
|
||||
size_t size= r[0] * r[1] * r[2];
|
||||
|
||||
for(size_t i = 0; i < size; i++)
|
||||
{
|
||||
density[i] -= dydx;
|
||||
|
||||
if(density[i] < 0.0f)
|
||||
density[i] = 0.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" void smoke_initWaveletBlenderRNA(WTURBULENCE *wt, float *strength)
|
||||
{
|
||||
wt->initBlenderRNA(strength);
|
||||
@@ -134,17 +227,6 @@ extern "C" unsigned char *smoke_get_obstacle(FLUID_3D *fluid)
|
||||
return fluid->_obstacles;
|
||||
}
|
||||
|
||||
extern "C" size_t smoke_get_index(int x, int max_x, int y, int max_y, int z /*, int max_z */)
|
||||
{
|
||||
// // const int index = x + y * smd->res[0] + z * smd->res[0]*smd->res[1];
|
||||
return x + y * max_x + z * max_x*max_y;
|
||||
}
|
||||
|
||||
extern "C" size_t smoke_get_index2d(int x, int max_x, int y /*, int max_y, int z, int max_z */)
|
||||
{
|
||||
return x + y * max_x;
|
||||
}
|
||||
|
||||
extern "C" void smoke_turbulence_set_noise(WTURBULENCE *wt, int type)
|
||||
{
|
||||
wt->setNoise(type);
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="_DEBUG,WIN32,_LIB"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@@ -118,7 +118,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_OPENEXR;WITH_DDS;WITH_BULLET;WITH_FFMPEG"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@@ -193,7 +193,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_OPENEXR;WITH_DDS;WITH_BULLET=1;WITH_FFMPEG"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
@@ -268,7 +268,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG,WIN32,_LIB"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
@@ -343,7 +343,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;WITH_FFMPEG"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@@ -418,7 +418,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\zlib\include;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\iksolver\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_FFMPEG"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
@@ -781,6 +781,10 @@
|
||||
RelativePath="..\..\..\source\blender\blenkernel\intern\texture.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenkernel\intern\unit.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenkernel\intern\world.c"
|
||||
>
|
||||
@@ -1090,6 +1094,10 @@
|
||||
RelativePath="..\..\..\source\blender\blenkernel\BKE_texture.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenkernel\BKE_unit.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\blenkernel\BKE_utildefines.h"
|
||||
>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\QTDevWin\CIncludes;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\blenkey\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\source\blender;..\..\..\source\blender\img;..\..\..\source\blender\verify;..\..\..\source\blender\ftfont;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\editors\include;..\..\..\source\blender\renderui;..\..\..\source\blender\blenloader;..\..\..\source\blender\quicktime;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenpluginapi;..\..\..\source\blender\renderconverter;..\..\..\source\blender\readstreamglue;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\network;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\QTDevWin\CIncludes;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\blenkey\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\source\blender;..\..\..\source\blender\img;..\..\..\source\blender\verify;..\..\..\source\blender\ftfont;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\editors\include;..\..\..\source\blender\renderui;..\..\..\source\blender\blenloader;..\..\..\source\blender\quicktime;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenpluginapi;..\..\..\source\blender\renderconverter;..\..\..\source\blender\readstreamglue;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\network;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CONSOLE;GAMEBLENDER=1;WITH_QUICKTIME;INTERNATIONAL;WITH_FREETYPE2;WITH_INTERNATIONAL;WITH_OPENEXR;WITH_DDS;WITH_BULLET=1;WITH_FFMPEG"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
@@ -118,7 +118,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\QTDevWin\CIncludes;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\blenkey\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\source\blender;..\..\..\source\blender\img;..\..\..\source\blender\verify;..\..\..\source\blender\ftfont;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\editors\include;..\..\..\source\blender\renderui;..\..\..\source\blender\blenloader;..\..\..\source\blender\quicktime;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenpluginapi;..\..\..\source\blender\renderconverter;..\..\..\source\blender\readstreamglue;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\network;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\lib\windows\QTDevWin\CIncludes;..\..\..\..\lib\windows\sdl\include;..\..\..\..\lib\windows\python\include\python2.6;..\..\..\..\build\msvc_9\intern\bsp\include;..\..\..\..\build\msvc_9\intern\ghost\include;..\..\..\..\build\msvc_9\intern\elbeem\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\intern\bmfont\include;..\..\..\..\build\msvc_9\intern\blenkey\include;..\..\..\..\build\msvc_9\intern\decimation\include;..\..\..\..\build\msvc_9\intern\memutil\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\source\blender;..\..\..\source\blender\img;..\..\..\source\blender\verify;..\..\..\source\blender\ftfont;..\..\..\source\blender\misc;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\editors\include;..\..\..\source\blender\renderui;..\..\..\source\blender\blenloader;..\..\..\source\blender\quicktime;..\..\..\source\blender\blenkernel;..\..\..\source\blender\blenfont;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\windowmanager;..\..\..\source\blender\blenpluginapi;..\..\..\source\blender\renderconverter;..\..\..\source\blender\readstreamglue;..\..\..\source\blender\render\extern\include;..\..\..\source\blender\radiosity\extern\include;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\network;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\ffmpeg\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;_CONSOLE;GAMEBLENDER=1;WITH_QUICKTIME;INTERNATIONAL;WITH_BF_INTERNATIONAL;WITH_FREETYPE2;WITH_OPENEXR;WITH_DDS;WITH_BULLET = 1;WITH_FFMPEG"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@@ -995,7 +995,11 @@
|
||||
Name="animation"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\editors\animation\anim_channels.c"
|
||||
RelativePath="..\..\..\source\blender\editors\animation\anim_channels_defines.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\source\blender\editors\animation\anim_channels_edit.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="WIN32,_LIB,_DEBUG"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@@ -118,7 +118,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
@@ -194,7 +194,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="WIN32,_LIB,_DEBUG"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@@ -269,7 +269,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
@@ -345,7 +345,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="WIN32,_LIB,_DEBUG"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@@ -420,7 +420,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
@@ -119,7 +119,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
@@ -194,7 +194,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@@ -270,7 +270,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
@@ -346,7 +346,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@@ -422,7 +422,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
|
||||
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
|
||||
@@ -35,16 +35,6 @@ BLENDNAME=blender-$(VERSION)-$(CONFIG_GUESS)-py$(NAN_PYTHON_VERSION)$(TYPE)
|
||||
export DISTDIR=$(NAN_OBJDIR)/$(BLENDNAME)
|
||||
export CONFDIR=$(DISTDIR)/.blender
|
||||
|
||||
ifeq ($(OS),beos)
|
||||
TAR="zip"
|
||||
TARFLAGS="-ry9"
|
||||
EXT0=""
|
||||
EXT1=".zip"
|
||||
COMPRESS=""
|
||||
EXT2=""
|
||||
NOPLUGINS?=true
|
||||
endif
|
||||
|
||||
ifeq ($(OS),$(findstring $(OS), "freebsd irix linux openbsd solaris"))
|
||||
TAR="tar"
|
||||
TARFLAGS="cf"
|
||||
|
||||
@@ -727,7 +727,7 @@ class PovrayRender(bpy.types.RenderEngine):
|
||||
result = self.begin_result(0, 0, x, y)
|
||||
lay = result.layers[0]
|
||||
# possible the image wont load early on.
|
||||
try: lay.rect_from_file(self.temp_file_out, 0, 0)
|
||||
try: lay.load_from_file(self.temp_file_out)
|
||||
except: pass
|
||||
self.end_result(result)
|
||||
|
||||
|
||||
@@ -111,48 +111,3 @@ class bpy_ops_submodule_op(object):
|
||||
|
||||
import bpy
|
||||
bpy.ops = bpy_ops()
|
||||
|
||||
|
||||
|
||||
|
||||
# A bit out of place but add button conversion code here
|
||||
module_type = type(__builtins__)
|
||||
import types
|
||||
mod = types.ModuleType('button_convert')
|
||||
|
||||
import sys
|
||||
sys.modules['button_convert'] = mod
|
||||
|
||||
def convert(expr):
|
||||
|
||||
def replace(string, unit, scaler):
|
||||
# in need of regex
|
||||
change = True
|
||||
while change:
|
||||
change = False
|
||||
i = string.find(unit)
|
||||
if i != -1:
|
||||
if i>0 and not string[i-1].isalpha():
|
||||
i_end = i+len(unit)
|
||||
if i_end+1 >= len(string) or (not string[i_end+1].isalpha()):
|
||||
string = string.replace(unit, scaler)
|
||||
change = True
|
||||
# print(string)
|
||||
return string
|
||||
|
||||
#imperial
|
||||
expr = replace(expr, 'mi', '*1609.344')
|
||||
expr = replace(expr, 'yd', '*0.9144')
|
||||
expr = replace(expr, 'ft', '*0.3048')
|
||||
expr = replace(expr, 'in', '*0.0254')
|
||||
|
||||
# metric
|
||||
expr = replace(expr, 'km', '*1000')
|
||||
expr = replace(expr, 'm', '')
|
||||
expr = replace(expr, 'cm', '*0.01')
|
||||
expr = replace(expr, 'mm', '*0.001')
|
||||
|
||||
return expr
|
||||
|
||||
mod.convert = convert
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ class DATA_PT_skeleton(DataButtonsPanel):
|
||||
col = split.column()
|
||||
col.itemR(arm, "rest_position")
|
||||
col.itemL(text="Deform:")
|
||||
col.itemR(arm, "deform_vertexgroups", text="Vertes Groups")
|
||||
col.itemR(arm, "deform_vertexgroups", text="Vertex Groups")
|
||||
col.itemR(arm, "deform_envelope", text="Envelopes")
|
||||
col.itemR(arm, "deform_quaternion", text="Quaternion")
|
||||
col.itemR(arm, "deform_bbone_rest", text="B-Bones Rest")
|
||||
|
||||
@@ -106,12 +106,15 @@ class DATA_PT_vertex_groups(DataButtonsPanel):
|
||||
row.itemR(group, "name")
|
||||
|
||||
if context.edit_object:
|
||||
row = layout.row(align=True)
|
||||
|
||||
row.itemO("object.vertex_group_assign", text="Assign")
|
||||
row.itemO("object.vertex_group_remove_from", text="Remove")
|
||||
row.itemO("object.vertex_group_select", text="Select")
|
||||
row.itemO("object.vertex_group_deselect", text="Deselect")
|
||||
row = layout.row()
|
||||
|
||||
sub = row.row(align=True)
|
||||
sub.itemO("object.vertex_group_assign", text="Assign")
|
||||
sub.itemO("object.vertex_group_remove_from", text="Remove")
|
||||
|
||||
sub = row.row(align=True)
|
||||
sub.itemO("object.vertex_group_select", text="Select")
|
||||
sub.itemO("object.vertex_group_deselect", text="Deselect")
|
||||
|
||||
layout.itemR(context.tool_settings, "vertex_group_weight", text="Weight")
|
||||
|
||||
@@ -159,7 +162,7 @@ class DATA_PT_shape_keys(DataButtonsPanel):
|
||||
row.itemR(kb, "value", slider=True)
|
||||
|
||||
split = layout.split()
|
||||
sub = split.column()
|
||||
sub = split.column(align=True)
|
||||
sub.enabled = ob.shape_key_lock == False
|
||||
sub.itemL(text="Range:")
|
||||
sub.itemR(kb, "slider_min", text="Min")
|
||||
|
||||
@@ -333,7 +333,7 @@ class DATA_PT_modifiers(DataButtonsPanel):
|
||||
layout.itemL(text="See Soft Body panel.")
|
||||
|
||||
def SUBSURF(self, layout, ob, md):
|
||||
layout.itemR(md, "subdivision_type")
|
||||
layout.row().itemR(md, "subdivision_type", expand=True)
|
||||
|
||||
flow = layout.column_flow()
|
||||
flow.itemR(md, "levels", text="Preview")
|
||||
@@ -349,9 +349,12 @@ class DATA_PT_modifiers(DataButtonsPanel):
|
||||
layout.item_pointerR(md, "uv_layer", ob.data, "uv_layers")
|
||||
#layout.itemR(md, "projectors")
|
||||
layout.itemR(md, "image")
|
||||
layout.itemR(md, "horizontal_aspect_ratio")
|
||||
layout.itemR(md, "vertical_aspect_ratio")
|
||||
layout.itemR(md, "override_image")
|
||||
layout.itemL(text="Aspect Ratio:")
|
||||
col = layout.column(align=True)
|
||||
col.itemR(md, "horizontal_aspect_ratio", text="Horizontal")
|
||||
col.itemR(md, "vertical_aspect_ratio", text="Vertical")
|
||||
|
||||
#"Projectors" don't work.
|
||||
|
||||
def WAVE(self, layout, ob, md):
|
||||
|
||||
@@ -19,72 +19,133 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel):
|
||||
|
||||
ob = context.active_object
|
||||
game = ob.game
|
||||
soft = ob.game.soft_body
|
||||
|
||||
layout.itemR(game, "physics_type")
|
||||
layout.itemS()
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemR(game, "actor")
|
||||
col.itemR(game, "ghost")
|
||||
col.itemR(ob, "restrict_render", text="Invisible") # out of place but useful
|
||||
|
||||
col = split.column()
|
||||
col.itemR(game, "do_fh", text="Use Material Physics")
|
||||
col.itemR(game, "rotation_fh", text="Rotate From Normal")
|
||||
col.itemR(game, "no_sleeping")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Attributes:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(game, "mass")
|
||||
sub.itemR(game, "radius")
|
||||
sub.itemR(game, "form_factor")
|
||||
|
||||
col.itemS()
|
||||
|
||||
col.itemL(text="Damping:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(game, "damping", text="Translation", slider=True)
|
||||
sub.itemR(game, "rotation_damping", text="Rotation", slider=True)
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Velocity:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(game, "minimum_velocity", text="Minimum")
|
||||
sub.itemR(game, "maximum_velocity", text="Maximum")
|
||||
|
||||
col.itemS()
|
||||
|
||||
col.itemR(game, "anisotropic_friction")
|
||||
sub = col.column()
|
||||
sub.active = game.anisotropic_friction
|
||||
sub.itemR(game, "friction_coefficients", text="", slider=True)
|
||||
|
||||
layout.itemS()
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Lock Translation:")
|
||||
col.itemR(game, "lock_x_axis", text="X")
|
||||
col.itemR(game, "lock_y_axis", text="Y")
|
||||
col.itemR(game, "lock_z_axis", text="Z")
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Lock Rotation:")
|
||||
col.itemR(game, "lock_x_rot_axis", text="X")
|
||||
col.itemR(game, "lock_y_rot_axis", text="Y")
|
||||
col.itemR(game, "lock_z_rot_axis", text="Z")
|
||||
#if game.physics_type == 'DYNAMIC':
|
||||
if game.physics_type in ('DYNAMIC', 'RIGID_BODY'):
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemR(game, "actor")
|
||||
col.itemR(game, "ghost")
|
||||
col.itemR(ob, "restrict_render", text="Invisible") # out of place but useful
|
||||
|
||||
col = split.column()
|
||||
col.itemR(game, "material_physics")
|
||||
col.itemR(game, "rotate_from_normal")
|
||||
col.itemR(game, "no_sleeping")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Attributes:")
|
||||
sub = col.column()
|
||||
sub.itemR(game, "mass")
|
||||
sub.itemR(game, "radius")
|
||||
sub.itemR(game, "form_factor")
|
||||
|
||||
col = split.column()
|
||||
sub = col.column()
|
||||
sub.active = (game.physics_type == 'RIGID_BODY')
|
||||
sub.itemR(game, "anisotropic_friction")
|
||||
subsub = sub.column()
|
||||
subsub.active = game.anisotropic_friction
|
||||
subsub.itemR(game, "friction_coefficients", text="", slider=True)
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Velocity:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(game, "minimum_velocity", text="Minimum")
|
||||
sub.itemR(game, "maximum_velocity", text="Maximum")
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Damping:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(game, "damping", text="Translation", slider=True)
|
||||
sub.itemR(game, "rotation_damping", text="Rotation", slider=True)
|
||||
|
||||
layout.itemS()
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Lock Translation:")
|
||||
col.itemR(game, "lock_x_axis", text="X")
|
||||
col.itemR(game, "lock_y_axis", text="Y")
|
||||
col.itemR(game, "lock_z_axis", text="Z")
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Lock Rotation:")
|
||||
col.itemR(game, "lock_x_rot_axis", text="X")
|
||||
col.itemR(game, "lock_y_rot_axis", text="Y")
|
||||
col.itemR(game, "lock_z_rot_axis", text="Z")
|
||||
|
||||
elif game.physics_type == 'SOFT_BODY':
|
||||
|
||||
col = layout.column()
|
||||
col.itemR(game, "actor")
|
||||
col.itemR(game, "ghost")
|
||||
col.itemR(ob, "restrict_render", text="Invisible")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Attributes:")
|
||||
col.itemR(game, "mass")
|
||||
col.itemR(soft, "welding")
|
||||
col.itemR(soft, "position_iterations")
|
||||
col.itemR(soft, "linstiff", slider=True)
|
||||
col.itemR(soft, "dynamic_friction", slider=True)
|
||||
col.itemR(soft, "margin", slider=True)
|
||||
col.itemR(soft, "bending_const", text="Bending Constraints")
|
||||
|
||||
|
||||
col = split.column()
|
||||
col.itemR(soft, "shape_match")
|
||||
sub = col.column()
|
||||
sub.active = soft.shape_match
|
||||
sub.itemR(soft, "threshold", slider=True)
|
||||
|
||||
col.itemS()
|
||||
|
||||
col.itemL(text="Cluster Collision:")
|
||||
col.itemR(soft, "cluster_rigid_to_softbody")
|
||||
col.itemR(soft, "cluster_soft_to_softbody")
|
||||
sub = col.column()
|
||||
sub.active = (soft.cluster_rigid_to_softbody or soft.cluster_soft_to_softbody)
|
||||
sub.itemR(soft, "cluster_iterations", text="Iterations")
|
||||
|
||||
elif game.physics_type == 'STATIC':
|
||||
|
||||
col = layout.column()
|
||||
col.itemR(game, "actor")
|
||||
col.itemR(game, "ghost")
|
||||
col.itemR(ob, "restrict_render", text="Invisible")
|
||||
|
||||
elif game.physics_type in ('SENSOR', 'INVISIBLE', 'NO_COLLISION', 'OCCLUDE'):
|
||||
|
||||
col = layout.column()
|
||||
col.itemR(ob, "restrict_render", text="Invisible")
|
||||
|
||||
class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel):
|
||||
__label__ = "Collision Bounds"
|
||||
|
||||
def poll(self, context):
|
||||
ob = context.active_object
|
||||
game = ob.game
|
||||
rd = context.scene.render_data
|
||||
return (game.physics_type in ('DYNAMIC', 'RIGID_BODY', 'SENSOR', 'SOFT_BODY', 'STATIC')) and (rd.engine == 'BLENDER_GAME')
|
||||
|
||||
def draw_header(self, context):
|
||||
layout = self.layout
|
||||
|
||||
|
||||
@@ -60,15 +60,16 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel):
|
||||
split.template_ID(ob, "active_material", new="material.new")
|
||||
row = split.row()
|
||||
if slot:
|
||||
row.itemR(slot, "link", expand=True)
|
||||
row.itemR(slot, "link", text="")
|
||||
else:
|
||||
row.itemL()
|
||||
elif mat:
|
||||
split.template_ID(space, "pin_id")
|
||||
split.itemS()
|
||||
|
||||
layout.itemR(mat, "type", expand=True)
|
||||
|
||||
class MATERIAL_PT_material(MaterialButtonsPanel):
|
||||
__idname__= "MATERIAL_PT_material"
|
||||
class MATERIAL_PT_shading(MaterialButtonsPanel):
|
||||
__label__ = "Shading"
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
|
||||
|
||||
@@ -81,30 +82,34 @@ class MATERIAL_PT_material(MaterialButtonsPanel):
|
||||
space = context.space_data
|
||||
|
||||
if mat:
|
||||
layout.itemR(mat, "type", expand=True)
|
||||
|
||||
if mat.type in ('SURFACE', 'WIRE', 'VOLUME'):
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemR(mat, "alpha", slider=True)
|
||||
col.itemR(mat, "ambient", slider=True)
|
||||
col.active = not mat.shadeless
|
||||
col.itemR(mat, "ambient")
|
||||
col.itemR(mat, "emit")
|
||||
col.itemR(mat, "translucency", slider=True)
|
||||
col.itemR(mat, "translucency")
|
||||
|
||||
col = split.column()
|
||||
col.itemR(mat, "z_transparency")
|
||||
col.itemR(mat, "shadeless")
|
||||
col.itemR(mat, "tangent_shading")
|
||||
col.itemR(mat, "cubic", slider=True)
|
||||
sub = col.column()
|
||||
sub.active = not mat.shadeless
|
||||
sub.itemR(mat, "tangent_shading")
|
||||
sub.itemR(mat, "cubic")
|
||||
|
||||
elif mat.type == 'HALO':
|
||||
layout.itemR(mat, "alpha", slider=True)
|
||||
layout.itemR(mat, "alpha")
|
||||
|
||||
class MATERIAL_PT_strand(MaterialButtonsPanel):
|
||||
__label__ = "Strand"
|
||||
__default_closed__ = True
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
|
||||
def poll(self, context):
|
||||
mat = context.material
|
||||
return mat and (mat.type in ('SURFACE', 'WIRE')) and (context.scene.render_data.engine in self.COMPAT_ENGINES)
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
@@ -191,8 +196,9 @@ class MATERIAL_PT_options(MaterialButtonsPanel):
|
||||
col.itemR(mat, "vertex_color_light")
|
||||
col.itemR(mat, "object_color")
|
||||
|
||||
class MATERIAL_PT_shadows(MaterialButtonsPanel):
|
||||
__label__ = "Shadows"
|
||||
class MATERIAL_PT_shadow(MaterialButtonsPanel):
|
||||
__label__ = "Shadow"
|
||||
__default_closed__ = True
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
|
||||
|
||||
def draw(self, context):
|
||||
@@ -207,16 +213,18 @@ class MATERIAL_PT_shadows(MaterialButtonsPanel):
|
||||
col.itemR(mat, "transparent_shadows", text="Receive Transparent")
|
||||
col.itemR(mat, "only_shadow", text="Shadows Only")
|
||||
col.itemR(mat, "cast_shadows_only", text="Cast Only")
|
||||
col.itemR(mat, "shadow_casting_alpha", text="Casting Alpha", slider=True)
|
||||
col.itemR(mat, "shadow_casting_alpha", text="Casting Alpha")
|
||||
|
||||
col = split.column()
|
||||
col.itemR(mat, "cast_buffer_shadows")
|
||||
sub = col.column()
|
||||
sub.active = mat.cast_buffer_shadows
|
||||
sub.itemR(mat, "shadow_buffer_bias", text="Buffer Bias")
|
||||
col.itemR(mat, "ray_shadow_bias", text="Auto Ray Bias")
|
||||
sub = col.column()
|
||||
subsub = sub.column()
|
||||
subsub.active = (not mat.ray_shadow_bias)
|
||||
subsub.itemR(mat, "shadow_ray_bias", text="Ray Shadow Bias")
|
||||
sub.itemR(mat, "cast_buffer_shadows")
|
||||
sub.itemR(mat, "shadow_buffer_bias", text="Buffer Bias")
|
||||
sub.active = (not mat.ray_shadow_bias)
|
||||
sub.itemR(mat, "shadow_ray_bias", text="Ray Bias")
|
||||
|
||||
|
||||
class MATERIAL_PT_diffuse(MaterialButtonsPanel):
|
||||
__label__ = "Diffuse"
|
||||
@@ -237,7 +245,7 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel):
|
||||
col.itemR(mat, "diffuse_color", text="")
|
||||
sub = col.column()
|
||||
sub.active = (not mat.shadeless)
|
||||
sub.itemR(mat, "diffuse_reflection", text="Intensity", slider=True)
|
||||
sub.itemR(mat, "diffuse_reflection", text="Intensity")
|
||||
|
||||
col = split.column()
|
||||
col.active = (not mat.shadeless)
|
||||
@@ -253,7 +261,7 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel):
|
||||
elif mat.diffuse_shader == 'TOON':
|
||||
row = col.row()
|
||||
row.itemR(mat, "diffuse_toon_size", text="Size")
|
||||
row.itemR(mat, "diffuse_toon_smooth", text="Smooth", slider=True)
|
||||
row.itemR(mat, "diffuse_toon_smooth", text="Smooth")
|
||||
elif mat.diffuse_shader == 'FRESNEL':
|
||||
row = col.row()
|
||||
row.itemR(mat, "diffuse_fresnel", text="Fresnel")
|
||||
@@ -291,7 +299,7 @@ class MATERIAL_PT_specular(MaterialButtonsPanel):
|
||||
|
||||
col = split.column()
|
||||
col.itemR(mat, "specular_color", text="")
|
||||
col.itemR(mat, "specular_reflection", text="Intensity", slider=True)
|
||||
col.itemR(mat, "specular_reflection", text="Intensity")
|
||||
|
||||
col = split.column()
|
||||
col.itemR(mat, "specular_shader", text="")
|
||||
@@ -309,7 +317,7 @@ class MATERIAL_PT_specular(MaterialButtonsPanel):
|
||||
elif mat.specular_shader == 'TOON':
|
||||
row = col.row()
|
||||
row.itemR(mat, "specular_toon_size", text="Size")
|
||||
row.itemR(mat, "specular_toon_smooth", text="Smooth", slider=True)
|
||||
row.itemR(mat, "specular_toon_smooth", text="Smooth")
|
||||
|
||||
if mat.use_specular_ramp:
|
||||
layout.itemS()
|
||||
@@ -352,8 +360,8 @@ class MATERIAL_PT_sss(MaterialButtonsPanel):
|
||||
col = split.column(align=True)
|
||||
col.itemR(sss, "color", text="")
|
||||
col.itemL(text="Blend:")
|
||||
col.itemR(sss, "color_factor", text="Color", slider=True)
|
||||
col.itemR(sss, "texture_factor", text="Texture", slider=True)
|
||||
col.itemR(sss, "color_factor", text="Color")
|
||||
col.itemR(sss, "texture_factor", text="Texture")
|
||||
col.itemL(text="Scattering Weight:")
|
||||
col.itemR(sss, "front")
|
||||
col.itemR(sss, "back")
|
||||
@@ -365,14 +373,14 @@ class MATERIAL_PT_sss(MaterialButtonsPanel):
|
||||
col.itemR(sss, "radius", text="RGB Radius")
|
||||
col.itemR(sss, "error_tolerance")
|
||||
|
||||
class MATERIAL_PT_raymir(MaterialButtonsPanel):
|
||||
__label__ = "Ray Mirror"
|
||||
class MATERIAL_PT_mirror(MaterialButtonsPanel):
|
||||
__label__ = "Mirror"
|
||||
__default_closed__ = True
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
|
||||
def poll(self, context):
|
||||
mat = context.material
|
||||
return mat and (mat.type in 'SURFACE', 'WIRE') and (context.scene.render_data.engine in self.COMPAT_ENGINES)
|
||||
return mat and (mat.type in ('SURFACE', 'WIRE')) and (context.scene.render_data.engine in self.COMPAT_ENGINES)
|
||||
|
||||
def draw_header(self, context):
|
||||
layout = self.layout
|
||||
@@ -392,13 +400,13 @@ class MATERIAL_PT_raymir(MaterialButtonsPanel):
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemR(raym, "reflect", text="Reflectivity", slider=True)
|
||||
col.itemR(raym, "reflect", text="Reflectivity")
|
||||
col.itemR(mat, "mirror_color", text="")
|
||||
col.itemL(text="Fresnel:")
|
||||
col.itemR(raym, "fresnel", text="Amount")
|
||||
sub = col.column()
|
||||
sub.active = raym.fresnel > 0
|
||||
sub.itemR(raym, "fresnel_fac", text="Blend", slider=True)
|
||||
sub.itemR(raym, "fresnel_factor", text="Blend")
|
||||
col.itemS()
|
||||
col.itemS()
|
||||
sub = col.split(percentage=0.4)
|
||||
@@ -409,29 +417,28 @@ class MATERIAL_PT_raymir(MaterialButtonsPanel):
|
||||
col.itemR(raym, "depth")
|
||||
col.itemR(raym, "distance", text="Max Dist")
|
||||
col.itemL(text="Gloss:")
|
||||
col.itemR(raym, "gloss", text="Amount", slider=True)
|
||||
col.itemR(raym, "gloss", text="Amount")
|
||||
sub = col.column()
|
||||
sub.active = raym.gloss < 1
|
||||
sub.itemR(raym, "gloss_threshold", slider=True, text="Threshold")
|
||||
sub.itemR(raym, "gloss_threshold", text="Threshold")
|
||||
sub.itemR(raym, "gloss_samples", text="Samples")
|
||||
sub.itemR(raym, "gloss_anisotropic", slider=True, text="Anisotropic")
|
||||
sub.itemR(raym, "gloss_anisotropic", text="Anisotropic")
|
||||
|
||||
|
||||
class MATERIAL_PT_raytransp(MaterialButtonsPanel):
|
||||
__label__= "Ray Transparency"
|
||||
class MATERIAL_PT_transp(MaterialButtonsPanel):
|
||||
__label__= "Transparency"
|
||||
__default_closed__ = True
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
|
||||
def poll(self, context):
|
||||
mat = context.material
|
||||
return mat and (mat.type in 'SURFACE', 'WIRE') and (context.scene.render_data.engine in self.COMPAT_ENGINES)
|
||||
return mat and (mat.type in ('SURFACE', 'WIRE')) and (context.scene.render_data.engine in self.COMPAT_ENGINES)
|
||||
|
||||
def draw_header(self, context):
|
||||
layout = self.layout
|
||||
|
||||
rayt = context.material.raytrace_transparency
|
||||
|
||||
layout.itemR(rayt, "enabled", text="")
|
||||
mat = context.material
|
||||
layout.itemR(mat, "transparency", text="")
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
@@ -439,36 +446,47 @@ class MATERIAL_PT_raytransp(MaterialButtonsPanel):
|
||||
mat = context.material
|
||||
rayt = context.material.raytrace_transparency
|
||||
|
||||
layout.active = rayt.enabled and (not mat.shadeless)
|
||||
row= layout.row()
|
||||
row.itemR(mat, "transparency_method", expand=True)
|
||||
row.active = mat.transparency and (not mat.shadeless)
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemR(rayt, "ior")
|
||||
col.itemR(rayt, "falloff")
|
||||
col.itemR(rayt, "limit")
|
||||
|
||||
col = split.column()
|
||||
col.itemR(rayt, "depth")
|
||||
col.itemR(rayt, "filter", slider=True)
|
||||
col.itemR(rayt, "specular_opacity", slider=True, text="Spec Opacity")
|
||||
|
||||
split = layout.split()
|
||||
col.itemL(text="Transparency:")
|
||||
row = col.row()
|
||||
row.itemR(mat, "alpha")
|
||||
row.active = mat.transparency
|
||||
row = col.row()
|
||||
row.itemR(mat, "specular_alpha", text="Specular")
|
||||
row.active = mat.transparency and (not mat.shadeless)
|
||||
|
||||
col = split.column()
|
||||
col.active = mat.transparency and (not mat.shadeless)
|
||||
col.itemL(text="Fresnel:")
|
||||
col.itemR(rayt, "fresnel", text="Amount")
|
||||
sub = col.column()
|
||||
sub.active = rayt.fresnel > 0
|
||||
sub.itemR(rayt, "fresnel_fac", text="Blend", slider=True)
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Gloss:")
|
||||
col.itemR(rayt, "gloss", text="Amount", slider=True)
|
||||
sub = col.column()
|
||||
sub.active = rayt.gloss < 1
|
||||
sub.itemR(rayt, "gloss_threshold", slider=True, text="Threshold")
|
||||
sub.itemR(rayt, "gloss_samples", text="Samples")
|
||||
sub.itemR(rayt, "fresnel_factor", text="Blend")
|
||||
|
||||
if mat.transparency_method == 'RAYTRACE':
|
||||
split = layout.split()
|
||||
split.active = mat.transparency and (not mat.shadeless)
|
||||
|
||||
col = split.column()
|
||||
col.itemR(rayt, "ior")
|
||||
col.itemR(rayt, "filter")
|
||||
col.itemR(rayt, "falloff")
|
||||
col.itemR(rayt, "limit")
|
||||
col.itemR(rayt, "depth")
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Gloss:")
|
||||
col.itemR(rayt, "gloss", text="Amount")
|
||||
sub = col.column()
|
||||
sub.active = rayt.gloss < 1
|
||||
sub.itemR(rayt, "gloss_threshold", text="Threshold")
|
||||
sub.itemR(rayt, "gloss_samples", text="Samples")
|
||||
|
||||
class MATERIAL_PT_halo(MaterialButtonsPanel):
|
||||
__label__= "Halo"
|
||||
@@ -490,7 +508,7 @@ class MATERIAL_PT_halo(MaterialButtonsPanel):
|
||||
col.itemR(mat, "diffuse_color", text="")
|
||||
col.itemR(halo, "size")
|
||||
col.itemR(halo, "hardness")
|
||||
col.itemR(halo, "add", slider=True)
|
||||
col.itemR(halo, "add")
|
||||
col.itemL(text="Options:")
|
||||
col.itemR(halo, "use_texture", text="Texture")
|
||||
col.itemR(halo, "use_vertex_normal", text="Vertex Normal")
|
||||
@@ -524,14 +542,15 @@ class MATERIAL_PT_halo(MaterialButtonsPanel):
|
||||
|
||||
bpy.types.register(MATERIAL_PT_context_material)
|
||||
bpy.types.register(MATERIAL_PT_preview)
|
||||
bpy.types.register(MATERIAL_PT_material)
|
||||
bpy.types.register(MATERIAL_PT_diffuse)
|
||||
bpy.types.register(MATERIAL_PT_specular)
|
||||
bpy.types.register(MATERIAL_PT_raymir)
|
||||
bpy.types.register(MATERIAL_PT_raytransp)
|
||||
bpy.types.register(MATERIAL_PT_shading)
|
||||
bpy.types.register(MATERIAL_PT_transp)
|
||||
bpy.types.register(MATERIAL_PT_mirror)
|
||||
bpy.types.register(MATERIAL_PT_sss)
|
||||
bpy.types.register(MATERIAL_PT_halo)
|
||||
bpy.types.register(MATERIAL_PT_physics)
|
||||
bpy.types.register(MATERIAL_PT_strand)
|
||||
bpy.types.register(MATERIAL_PT_options)
|
||||
bpy.types.register(MATERIAL_PT_shadows)
|
||||
bpy.types.register(MATERIAL_PT_shadow)
|
||||
|
||||
|
||||
@@ -51,7 +51,9 @@ class OBJECT_PT_relations(ObjectButtonsPanel):
|
||||
col.itemR(ob, "parent", text="")
|
||||
|
||||
sub = col.column()
|
||||
sub.itemR(ob, "parent_type", text="Type")
|
||||
split = sub.split(percentage=0.3)
|
||||
split.itemL(text="Type:")
|
||||
split.itemR(ob, "parent_type", text="")
|
||||
parent = ob.parent
|
||||
if parent and ob.parent_type == 'BONE' and parent.type == 'ARMATURE':
|
||||
sub.item_pointerR(ob, "parent_bone", parent.data, "bones", text="")
|
||||
|
||||
@@ -361,9 +361,9 @@ class ConstraintButtonsPanel(bpy.types.Panel):
|
||||
def STRETCH_TO(self, layout, con):
|
||||
self.target_template(layout, con)
|
||||
|
||||
col = layout.column(align=True)
|
||||
col.itemR(con, "original_length", text="Rest Length")
|
||||
col.itemO("constraint.stretchto_reset")
|
||||
row = layout.row()
|
||||
row.itemR(con, "original_length", text="Rest Length")
|
||||
row.itemO("constraint.stretchto_reset", text="Reset")
|
||||
|
||||
col = layout.column()
|
||||
col.itemR(con, "bulge", text="Volume Variation")
|
||||
@@ -395,19 +395,21 @@ class ConstraintButtonsPanel(bpy.types.Panel):
|
||||
|
||||
row = layout.row()
|
||||
row.itemR(con, "disable_linked_collision", text="No Collision")
|
||||
row.itemR(con, "draw_pivot")
|
||||
row.itemR(con, "draw_pivot", text="Display Pivot")
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemR(con, "pivot_x")
|
||||
col.itemR(con, "pivot_y")
|
||||
col.itemR(con, "pivot_z")
|
||||
col = split.column(align=True)
|
||||
col.itemL(text="Pivot:")
|
||||
col.itemR(con, "pivot_x", text="X")
|
||||
col.itemR(con, "pivot_y", text="Y")
|
||||
col.itemR(con, "pivot_z", text="Z")
|
||||
|
||||
col = split.column()
|
||||
col.itemR(con, "axis_x")
|
||||
col.itemR(con, "axis_y")
|
||||
col.itemR(con, "axis_z")
|
||||
col = split.column(align=True)
|
||||
col.itemL(text="Axis:")
|
||||
col.itemR(con, "axis_x", text="X")
|
||||
col.itemR(con, "axis_y", text="Y")
|
||||
col.itemR(con, "axis_z", text="Z")
|
||||
|
||||
#Missing: Limit arrays (not wrapped in RNA yet)
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ class PARTICLE_PT_particles(ParticleButtonsPanel):
|
||||
if ob:
|
||||
row = layout.row()
|
||||
|
||||
row.template_list(ob, "particle_systems", ob, "active_particle_system_index")
|
||||
row.template_list(ob, "particle_systems", ob, "active_particle_system_index", rows=2)
|
||||
|
||||
col = row.column(align=True)
|
||||
col.itemO("object.particle_system_add", icon="ICON_ZOOMIN", text="")
|
||||
@@ -151,6 +151,13 @@ class PARTICLE_PT_cache(ParticleButtonsPanel):
|
||||
psys = context.particle_system
|
||||
part = psys.settings
|
||||
cache = psys.point_cache
|
||||
layout.set_context_pointer("PointCache", cache)
|
||||
|
||||
row = layout.row()
|
||||
row.template_list(cache, "point_cache_list", cache, "active_point_cache_index", rows=2 )
|
||||
col = row.column(align=True)
|
||||
col.itemO("ptcache.add_new", icon="ICON_ZOOMIN", text="")
|
||||
col.itemO("ptcache.remove", icon="ICON_ZOOMOUT", text="")
|
||||
|
||||
row = layout.row()
|
||||
row.itemL(text="File Name:")
|
||||
@@ -166,37 +173,38 @@ class PARTICLE_PT_cache(ParticleButtonsPanel):
|
||||
|
||||
layout.itemL(text=cache.info)
|
||||
|
||||
split = layout.split()
|
||||
#split = layout.split()
|
||||
|
||||
col = split.column(align=True)
|
||||
col.itemR(part, "start")
|
||||
col.itemR(part, "end")
|
||||
#col = split.column(align=True)
|
||||
#col.itemR(part, "start")
|
||||
#col.itemR(part, "end")
|
||||
|
||||
col = split.column(align=True)
|
||||
col.itemR(part, "lifetime")
|
||||
col.itemR(part, "random_lifetime", slider=True)
|
||||
#col = split.column(align=True)
|
||||
#col.itemR(part, "lifetime")
|
||||
#col.itemR(part, "random_lifetime", slider=True)
|
||||
else:
|
||||
layout.itemR(cache, "name", text="")
|
||||
|
||||
row = layout.row()
|
||||
|
||||
if cache.baked == True:
|
||||
row.itemO("ptcache.free_bake_particle_system", text="Free Bake")
|
||||
row.itemO("ptcache.free_bake", text="Free Bake")
|
||||
else:
|
||||
row.item_booleanO("ptcache.cache_particle_system", "bake", True, text="Bake")
|
||||
row.item_booleanO("ptcache.bake", "bake", True, text="Bake")
|
||||
|
||||
subrow = row.row()
|
||||
subrow.enabled = (cache.frames_skipped or cache.outdated) and particle_panel_enabled(psys)
|
||||
subrow.itemO("ptcache.cache_particle_system", text="Calculate to Current Frame")
|
||||
subrow.itemO("ptcache.bake", "bake", False, text="Calculate to Current Frame")
|
||||
|
||||
row = layout.row()
|
||||
row.enabled = particle_panel_enabled(psys)
|
||||
row.itemO("ptcache.bake_from_particles_cache", text="Current Cache to Bake")
|
||||
row.itemO("ptcache.bake_from_cache", text="Current Cache to Bake")
|
||||
row.itemR(cache, "step");
|
||||
|
||||
row = layout.row()
|
||||
row.enabled = particle_panel_enabled(psys)
|
||||
row.itemR(cache, "quick_cache")
|
||||
subrow = row.row()
|
||||
subrow.enabled = particle_panel_enabled(psys)
|
||||
subrow.itemR(cache, "quick_cache")
|
||||
row.itemR(cache, "disk_cache")
|
||||
|
||||
layout.itemL(text=cache.info)
|
||||
@@ -206,7 +214,7 @@ class PARTICLE_PT_cache(ParticleButtonsPanel):
|
||||
row = layout.row()
|
||||
row.item_booleanO("ptcache.bake_all", "bake", True, text="Bake All Dynamics")
|
||||
row.itemO("ptcache.free_bake_all", text="Free All Bakes")
|
||||
layout.itemO("ptcache.bake_all", text="Update All Dynamics to current frame")
|
||||
layout.itemO("ptcache.bake_all", "bake", False, text="Update All Dynamics to current frame")
|
||||
|
||||
# for particles these are figured out automatically
|
||||
#row.itemR(cache, "start_frame")
|
||||
@@ -703,9 +711,8 @@ class PARTICLE_PT_draw(ParticleButtonsPanel):
|
||||
col = row.column()
|
||||
col.itemR(part, "material_color", text="Use material color")
|
||||
|
||||
if (path):
|
||||
box = col.box()
|
||||
box.itemR(part, "draw_step")
|
||||
if (path):
|
||||
col.itemR(part, "draw_step")
|
||||
else:
|
||||
subcol = col.column()
|
||||
subcol.active = part.material_color==False
|
||||
|
||||
@@ -16,6 +16,7 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
md = context.cloth
|
||||
ob = context.object
|
||||
|
||||
@@ -41,27 +42,29 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel):
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemR(cloth, "quality", slider=True)
|
||||
col.itemL(text="Quality:")
|
||||
col.itemR(cloth, "quality", text="Steps",slider=True)
|
||||
col.itemL(text="Gravity:")
|
||||
col.itemR(cloth, "gravity", text="")
|
||||
|
||||
col.itemR(cloth, "pin_cloth", text="Pin")
|
||||
colsub = col.column(align=True)
|
||||
colsub.active = cloth.pin_cloth
|
||||
colsub.itemR(cloth, "pin_stiffness", text="Stiffness")
|
||||
colsub.item_pointerR(cloth, "mass_vertex_group", ob, "vertex_groups", text="")
|
||||
sub = col.column(align=True)
|
||||
sub.active = cloth.pin_cloth
|
||||
sub.itemR(cloth, "pin_stiffness", text="Stiffness")
|
||||
sub.item_pointerR(cloth, "mass_vertex_group", ob, "vertex_groups", text="")
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Presets...")
|
||||
col.itemL(text="TODO!")
|
||||
col.itemL(text="Material:")
|
||||
colsub = col.column(align=True)
|
||||
colsub.itemR(cloth, "mass")
|
||||
colsub.itemR(cloth, "structural_stiffness", text="Structural")
|
||||
colsub.itemR(cloth, "bending_stiffness", text="Bending")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(cloth, "mass")
|
||||
sub.itemR(cloth, "structural_stiffness", text="Structural")
|
||||
sub.itemR(cloth, "bending_stiffness", text="Bending")
|
||||
col.itemL(text="Damping:")
|
||||
colsub = col.column(align=True)
|
||||
colsub.itemR(cloth, "spring_damping", text="Spring")
|
||||
colsub.itemR(cloth, "air_damping", text="Air")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(cloth, "spring_damping", text="Spring")
|
||||
sub.itemR(cloth, "air_damping", text="Air")
|
||||
|
||||
# Disabled for now
|
||||
"""
|
||||
@@ -85,6 +88,13 @@ class PHYSICS_PT_cloth_cache(PhysicButtonsPanel):
|
||||
layout = self.layout
|
||||
|
||||
cache = context.cloth.point_cache
|
||||
layout.set_context_pointer("PointCache", cache)
|
||||
|
||||
row = layout.row()
|
||||
row.template_list(cache, "point_cache_list", cache, "active_point_cache_index")
|
||||
col = row.column(align=True)
|
||||
col.itemO("ptcache.add_new", icon="ICON_ZOOMIN", text="")
|
||||
col.itemO("ptcache.remove", icon="ICON_ZOOMOUT", text="")
|
||||
|
||||
row = layout.row()
|
||||
row.itemR(cache, "name")
|
||||
@@ -96,17 +106,17 @@ class PHYSICS_PT_cloth_cache(PhysicButtonsPanel):
|
||||
row = layout.row()
|
||||
|
||||
if cache.baked == True:
|
||||
row.itemO("ptcache.free_bake_cloth", text="Free Bake")
|
||||
row.itemO("ptcache.free_bake", text="Free Bake")
|
||||
else:
|
||||
row.item_booleanO("ptcache.cache_cloth", "bake", True, text="Bake")
|
||||
row.item_booleanO("ptcache.bake", "bake", True, text="Bake")
|
||||
|
||||
subrow = row.row()
|
||||
subrow.enabled = cache.frames_skipped or cache.outdated
|
||||
subrow.itemO("ptcache.cache_cloth", text="Calculate to Current Frame")
|
||||
subrow.itemO("ptcache.bake", "bake", False, text="Calculate to Current Frame")
|
||||
|
||||
row = layout.row()
|
||||
#row.enabled = particle_panel_enabled(psys)
|
||||
row.itemO("ptcache.bake_from_cloth_cache", text="Current Cache to Bake")
|
||||
row.itemO("ptcache.bake_from_cache", text="Current Cache to Bake")
|
||||
row.itemR(cache, "step");
|
||||
|
||||
row = layout.row()
|
||||
@@ -121,7 +131,7 @@ class PHYSICS_PT_cloth_cache(PhysicButtonsPanel):
|
||||
row = layout.row()
|
||||
row.itemO("ptcache.bake_all", "bake", True, text="Bake All Dynamics")
|
||||
row.itemO("ptcache.free_bake_all", text="Free All Bakes")
|
||||
layout.itemO("ptcache.bake_all", text="Update All Dynamics to current frame")
|
||||
layout.itemO("ptcache.bake_all", "bake", False, text="Update All Dynamics to current frame")
|
||||
|
||||
class PHYSICS_PT_cloth_collision(PhysicButtonsPanel):
|
||||
__label__ = "Cloth Collision"
|
||||
@@ -143,14 +153,14 @@ class PHYSICS_PT_cloth_collision(PhysicButtonsPanel):
|
||||
|
||||
layout.active = cloth.enable_collision
|
||||
|
||||
col = split.column(align=True)
|
||||
col = split.column()
|
||||
col.itemR(cloth, "collision_quality", slider=True, text="Quality")
|
||||
col.itemR(cloth, "min_distance", slider=True, text="Distance")
|
||||
col.itemR(cloth, "friction")
|
||||
|
||||
col = split.column(align=True)
|
||||
col = split.column()
|
||||
col.itemR(cloth, "enable_self_collision", text="Self Collision")
|
||||
col = col.column(align=True)
|
||||
col = col.column()
|
||||
col.active = cloth.enable_self_collision
|
||||
col.itemR(cloth, "self_collision_quality", slider=True, text="Quality")
|
||||
col.itemR(cloth, "self_min_distance", slider=True, text="Distance")
|
||||
@@ -179,15 +189,15 @@ class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel):
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Structural Stiffness:")
|
||||
colsub = col.column(align=True)
|
||||
colsub.itemR(cloth, "structural_stiffness_max", text="Max")
|
||||
colsub.item_pointerR(cloth, "structural_stiffness_vertex_group", ob, "vertex_groups", text="")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(cloth, "structural_stiffness_max", text="Max")
|
||||
sub.item_pointerR(cloth, "structural_stiffness_vertex_group", ob, "vertex_groups", text="")
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Bending Stiffness:")
|
||||
colsub = col.column(align=True)
|
||||
colsub.itemR(cloth, "bending_stiffness_max", text="Max")
|
||||
colsub.item_pointerR(cloth, "bending_vertex_group", ob, "vertex_groups", text="")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(cloth, "bending_stiffness_max", text="Max")
|
||||
sub.item_pointerR(cloth, "bending_vertex_group", ob, "vertex_groups", text="")
|
||||
|
||||
bpy.types.register(PHYSICS_PT_cloth)
|
||||
bpy.types.register(PHYSICS_PT_cloth_cache)
|
||||
|
||||
@@ -165,46 +165,66 @@ class PHYSICS_PT_collision(PhysicButtonsPanel):
|
||||
ob = context.object
|
||||
rd = context.scene.render_data
|
||||
return (ob and ob.type == 'MESH') and (not rd.use_game_engine)
|
||||
|
||||
def draw_header(self, context):
|
||||
settings = context.object.collision
|
||||
self.layout.itemR(settings, "enabled", text="")
|
||||
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
md = context.collision
|
||||
settings = context.object.collision
|
||||
|
||||
layout.active = settings.enabled
|
||||
|
||||
split = layout.split()
|
||||
split.operator_context = 'EXEC_DEFAULT'
|
||||
|
||||
if md:
|
||||
# remove modifier + settings
|
||||
split.set_context_pointer("modifier", md)
|
||||
split.itemO("object.modifier_remove", text="Remove")
|
||||
col = split.column()
|
||||
|
||||
#row = split.row(align=True)
|
||||
#row.itemR(md, "render", text="")
|
||||
#row.itemR(md, "realtime", text="")
|
||||
|
||||
coll = md.settings
|
||||
|
||||
else:
|
||||
# add modifier
|
||||
split.item_enumO("object.modifier_add", "type", 'COLLISION', text="Add")
|
||||
split.itemL()
|
||||
|
||||
coll = None
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Particle:")
|
||||
col.itemR(settings, "permeability", slider=True)
|
||||
col.itemL(text="Particle Damping:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(settings, "damping_factor", text="Factor", slider=True)
|
||||
sub.itemR(settings, "random_damping", text="Random", slider=True)
|
||||
if coll:
|
||||
settings = context.object.collision
|
||||
|
||||
layout.active = settings.enabled
|
||||
|
||||
col.itemL(text="Soft Body and Cloth:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(settings, "outer_thickness", text="Outer", slider=True)
|
||||
sub.itemR(settings, "inner_thickness", text="Inner", slider=True)
|
||||
split = layout.split()
|
||||
|
||||
layout.itemL(text="Force Fields:")
|
||||
layout.itemR(md, "absorption", text="Absorption")
|
||||
col = split.column()
|
||||
col.itemL(text="Particle:")
|
||||
col.itemR(settings, "permeability", slider=True)
|
||||
col.itemL(text="Particle Damping:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(settings, "damping_factor", text="Factor", slider=True)
|
||||
sub.itemR(settings, "random_damping", text="Random", slider=True)
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="")
|
||||
col.itemR(settings, "kill_particles")
|
||||
col.itemL(text="Particle Friction:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(settings, "friction_factor", text="Factor", slider=True)
|
||||
sub.itemR(settings, "random_friction", text="Random", slider=True)
|
||||
col.itemL(text="Soft Body Damping:")
|
||||
col.itemR(settings, "damping", text="Factor", slider=True)
|
||||
col.itemL(text="Soft Body and Cloth:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(settings, "outer_thickness", text="Outer", slider=True)
|
||||
sub.itemR(settings, "inner_thickness", text="Inner", slider=True)
|
||||
|
||||
layout.itemL(text="Force Fields:")
|
||||
layout.itemR(md, "absorption", text="Absorption")
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="")
|
||||
col.itemR(settings, "kill_particles")
|
||||
col.itemL(text="Particle Friction:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(settings, "friction_factor", text="Factor", slider=True)
|
||||
sub.itemR(settings, "random_friction", text="Random", slider=True)
|
||||
col.itemL(text="Soft Body Damping:")
|
||||
col.itemR(settings, "damping", text="Factor", slider=True)
|
||||
|
||||
bpy.types.register(PHYSICS_PT_field)
|
||||
bpy.types.register(PHYSICS_PT_collision)
|
||||
|
||||
@@ -51,10 +51,9 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel):
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Resolution:")
|
||||
sub = col.column()
|
||||
sub.itemR(fluid, "resolution", text="Final")
|
||||
sub.itemL(text="Render Display:")
|
||||
sub.itemR(fluid, "render_display_mode", text="")
|
||||
col.itemR(fluid, "resolution", text="Final")
|
||||
col.itemL(text="Render Display:")
|
||||
col.itemR(fluid, "render_display_mode", text="")
|
||||
col.itemL(text="Time:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(fluid, "start_time", text="Start")
|
||||
@@ -66,8 +65,8 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel):
|
||||
col.itemL(text="Viewport Display:")
|
||||
col.itemR(fluid, "viewport_display_mode", text="")
|
||||
col.itemL()
|
||||
col.itemR(fluid, "reverse_frames")
|
||||
col.itemR(fluid, "generate_speed_vectors")
|
||||
col.itemR(fluid, "reverse_frames")
|
||||
|
||||
layout.itemR(fluid, "path", text="")
|
||||
|
||||
@@ -93,12 +92,12 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel):
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Slip Type:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(fluid, "slip_type", text="")
|
||||
col.itemR(fluid, "slip_type", text="")
|
||||
if fluid.slip_type == 'PARTIALSLIP':
|
||||
sub.itemR(fluid, "partial_slip_amount", slider=True, text="Amount")
|
||||
col.itemR(fluid, "partial_slip_amount", slider=True, text="Amount")
|
||||
|
||||
col.itemR(fluid, "impact_factor")
|
||||
col.itemL(text="Impact:")
|
||||
col.itemR(fluid, "impact_factor", text="Factor")
|
||||
|
||||
elif fluid.type == 'INFLOW':
|
||||
split = layout.split()
|
||||
@@ -124,22 +123,23 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel):
|
||||
split.column()
|
||||
|
||||
elif fluid.type == 'PARTICLE':
|
||||
split = layout.split()
|
||||
split = layout.split(percentage=0.5)
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Influence:")
|
||||
sub = col.column(align=True)
|
||||
sub.itemR(fluid, "particle_influence", text="Size")
|
||||
sub.itemR(fluid, "alpha_influence", text="Alpha")
|
||||
|
||||
layout.itemR(fluid, "path", text="")
|
||||
col.itemR(fluid, "particle_influence", text="Size")
|
||||
col.itemR(fluid, "alpha_influence", text="Alpha")
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Type:")
|
||||
col.itemR(fluid, "drops")
|
||||
col.itemR(fluid, "floats")
|
||||
col = split.column()
|
||||
col.itemL()
|
||||
col.itemR(fluid, "tracer")
|
||||
|
||||
layout.itemR(fluid, "path", text="")
|
||||
|
||||
elif fluid.type == 'CONTROL':
|
||||
split = layout.split()
|
||||
|
||||
|
||||
@@ -41,66 +41,119 @@ class PHYSICS_PT_smoke(PhysicButtonsPanel):
|
||||
layout.itemR(md, "smoke_type", expand=True)
|
||||
|
||||
if md.smoke_type == 'TYPE_DOMAIN':
|
||||
|
||||
domain = md.domain_settings
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Resolution:")
|
||||
col.itemR(domain, "maxres", text="Divisions")
|
||||
|
||||
col.itemL(text="Display:")
|
||||
col.itemR(domain, "visibility", text="Resolution")
|
||||
col.itemR(domain, "color", slider=True)
|
||||
sub = col.column()
|
||||
sub.active = domain.highres
|
||||
sub.itemR(domain, "viewhighres")
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Behavior:")
|
||||
col.itemR(md.domain_settings, "alpha")
|
||||
col.itemR(md.domain_settings, "beta")
|
||||
|
||||
col.itemL(text="Resolution:")
|
||||
col.itemR(md.domain_settings, "maxres", text="Low")
|
||||
col.itemR(domain, "alpha")
|
||||
col.itemR(domain, "beta")
|
||||
col.itemR(domain, "dissolve_smoke", text="Dissolve")
|
||||
sub = col.column()
|
||||
sub.active = md.domain_settings.highres
|
||||
sub.itemR(md.domain_settings, "amplify", text="High")
|
||||
col.itemR(md.domain_settings, "highres", text="Use High Resolution")
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Display:")
|
||||
col.itemR(md.domain_settings, "visibility")
|
||||
col.itemR(md.domain_settings, "color", slider=True)
|
||||
sub = col.column()
|
||||
sub.active = md.domain_settings.highres
|
||||
sub.itemR(md.domain_settings, "viewhighres")
|
||||
|
||||
layout.itemL(text="Noise Type:")
|
||||
layout.itemR(md.domain_settings, "noise_type", expand=True)
|
||||
|
||||
split = layout.split()
|
||||
col = split.column()
|
||||
col.itemR(md.domain_settings, "strength")
|
||||
sub = split.column()
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Flow Group:")
|
||||
col.itemR(md.domain_settings, "fluid_group", text="")
|
||||
|
||||
#col.itemL(text="Effector Group:")
|
||||
#col.itemR(md.domain_settings, "eff_group", text="")
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Collision Group:")
|
||||
col.itemR(md.domain_settings, "coll_group", text="")
|
||||
sub.active = domain.dissolve_smoke
|
||||
sub.itemR(domain, "dissolve_speed", text="Speed")
|
||||
sub.itemR(domain, "dissolve_smoke_log", text="Slow")
|
||||
|
||||
elif md.smoke_type == 'TYPE_FLOW':
|
||||
|
||||
flow = md.flow_settings
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemR(md.flow_settings, "outflow")
|
||||
col.itemR(flow, "outflow")
|
||||
col.itemL(text="Particle System:")
|
||||
col.item_pointerR(md.flow_settings, "psys", ob, "particle_systems", text="")
|
||||
col.item_pointerR(flow, "psys", ob, "particle_systems", text="")
|
||||
|
||||
if md.flow_settings.outflow:
|
||||
col = split.column()
|
||||
else:
|
||||
col = split.column()
|
||||
col.itemL(text="Behavior:")
|
||||
col.itemR(md.flow_settings, "temperature")
|
||||
col.itemR(md.flow_settings, "density")
|
||||
col.itemR(flow, "temperature")
|
||||
col.itemR(flow, "density")
|
||||
|
||||
#elif md.smoke_type == 'TYPE_COLL':
|
||||
# layout.itemS()
|
||||
|
||||
class PHYSICS_PT_smoke_highres(PhysicButtonsPanel):
|
||||
__label__ = "Smoke High Resolution"
|
||||
__default_closed__ = True
|
||||
|
||||
def poll(self, context):
|
||||
md = context.smoke
|
||||
if md:
|
||||
return (md.smoke_type == 'TYPE_DOMAIN')
|
||||
|
||||
return False
|
||||
|
||||
bpy.types.register(PHYSICS_PT_smoke)
|
||||
def draw_header(self, context):
|
||||
layout = self.layout
|
||||
|
||||
high = context.smoke.domain_settings
|
||||
|
||||
layout.itemR(high, "highres", text="")
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
high = context.smoke.domain_settings
|
||||
|
||||
layout.active = high.highres
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Resolution:")
|
||||
col.itemR(high, "amplify", text="Divisions")
|
||||
|
||||
sub = split.column()
|
||||
sub.itemL(text="Noise Method:")
|
||||
sub.row().itemR(high, "noise_type", text="")
|
||||
sub.itemR(high, "strength")
|
||||
|
||||
class PHYSICS_PT_smoke_groups(PhysicButtonsPanel):
|
||||
__label__ = "Smoke Groups"
|
||||
__default_closed__ = True
|
||||
|
||||
def poll(self, context):
|
||||
md = context.smoke
|
||||
if md:
|
||||
return (md.smoke_type == 'TYPE_DOMAIN')
|
||||
|
||||
return False
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
group = context.smoke.domain_settings
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Flow Group:")
|
||||
col.itemR(group, "fluid_group", text="")
|
||||
|
||||
#col.itemL(text="Effector Group:")
|
||||
#col.itemR(group, "eff_group", text="")
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="Collision Group:")
|
||||
col.itemR(group, "coll_group", text="")
|
||||
|
||||
bpy.types.register(PHYSICS_PT_smoke)
|
||||
bpy.types.register(PHYSICS_PT_smoke_highres)
|
||||
bpy.types.register(PHYSICS_PT_smoke_groups)
|
||||
@@ -63,6 +63,13 @@ class PHYSICS_PT_softbody_cache(PhysicButtonsPanel):
|
||||
layout = self.layout
|
||||
|
||||
cache = context.soft_body.point_cache
|
||||
layout.set_context_pointer("PointCache", cache)
|
||||
|
||||
row = layout.row()
|
||||
row.template_list(cache, "point_cache_list", cache, "active_point_cache_index")
|
||||
col = row.column(align=True)
|
||||
col.itemO("ptcache.add_new", icon="ICON_ZOOMIN", text="")
|
||||
col.itemO("ptcache.remove", icon="ICON_ZOOMOUT", text="")
|
||||
|
||||
row = layout.row()
|
||||
row.itemR(cache, "name")
|
||||
@@ -74,16 +81,16 @@ class PHYSICS_PT_softbody_cache(PhysicButtonsPanel):
|
||||
row = layout.row()
|
||||
|
||||
if cache.baked == True:
|
||||
row.itemO("ptcache.free_bake_softbody", text="Free Bake")
|
||||
row.itemO("ptcache.free_bake", text="Free Bake")
|
||||
else:
|
||||
row.item_booleanO("ptcache.cache_softbody", "bake", True, text="Bake")
|
||||
row.item_booleanO("ptcache.bake", "bake", True, text="Bake")
|
||||
|
||||
sub = row.row()
|
||||
sub.enabled = cache.frames_skipped or cache.outdated
|
||||
sub.itemO("ptcache.cache_softbody", text="Calculate to Current Frame")
|
||||
sub.itemO("ptcache.bake", "bake", False, text="Calculate to Current Frame")
|
||||
|
||||
row = layout.row()
|
||||
row.itemO("ptcache.bake_from_softbody_cache", text="Current Cache to Bake")
|
||||
row.itemO("ptcache.bake_from_cache", text="Current Cache to Bake")
|
||||
row.itemR(cache, "step");
|
||||
|
||||
row = layout.row()
|
||||
@@ -97,7 +104,7 @@ class PHYSICS_PT_softbody_cache(PhysicButtonsPanel):
|
||||
row = layout.row()
|
||||
row.itemO("ptcache.bake_all", "bake", True, text="Bake All Dynamics")
|
||||
row.itemO("ptcache.free_bake_all", text="Free All Bakes")
|
||||
layout.itemO("ptcache.bake_all", text="Update All Dynamics to current frame")
|
||||
layout.itemO("ptcache.bake_all", "bake", False, text="Update All Dynamics to current frame")
|
||||
|
||||
class PHYSICS_PT_softbody_goal(PhysicButtonsPanel):
|
||||
__label__ = "Soft Body Goal"
|
||||
|
||||
@@ -430,6 +430,25 @@ class SCENE_PT_stamp(RenderButtonsPanel):
|
||||
sub.active = rd.stamp_note
|
||||
sub.itemR(rd, "stamp_note_text", text="")
|
||||
|
||||
class SCENE_PT_unit(RenderButtonsPanel):
|
||||
__label__ = "Units"
|
||||
__default_closed__ = True
|
||||
COMPAT_ENGINES = set(['BLENDER_RENDER'])
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
unit = context.scene.unit_settings
|
||||
|
||||
col = layout.column()
|
||||
col.row().itemR(unit, "system", expand=True)
|
||||
|
||||
row = layout.row()
|
||||
row.active = (unit.system != 'NONE')
|
||||
row.itemR(unit, "scale_length", text="Scale")
|
||||
row.itemR(unit, "use_separate")
|
||||
|
||||
|
||||
bpy.types.register(SCENE_PT_render)
|
||||
bpy.types.register(SCENE_PT_layers)
|
||||
bpy.types.register(SCENE_PT_dimensions)
|
||||
@@ -440,3 +459,4 @@ bpy.types.register(SCENE_PT_encoding)
|
||||
bpy.types.register(SCENE_PT_performance)
|
||||
bpy.types.register(SCENE_PT_post_processing)
|
||||
bpy.types.register(SCENE_PT_stamp)
|
||||
bpy.types.register(SCENE_PT_unit)
|
||||
|
||||
@@ -67,8 +67,6 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel):
|
||||
context.texture_paint_object \
|
||||
):
|
||||
split.itemR(space, "brush_texture", text="Brush", toggle=True)
|
||||
|
||||
layout.itemS()
|
||||
|
||||
if tex:
|
||||
split = layout.split(percentage=0.2)
|
||||
@@ -137,9 +135,20 @@ class TEXTURE_PT_mapping(TextureButtonsPanel):
|
||||
row.itemR(tex, "y_mapping", text="")
|
||||
row.itemR(tex, "z_mapping", text="")
|
||||
|
||||
row = layout.row()
|
||||
row.column().itemR(tex, "offset")
|
||||
row.column().itemR(tex, "size")
|
||||
if br:
|
||||
layout.itemR(tex, "brush_map_mode", expand=True)
|
||||
|
||||
row = layout.row()
|
||||
row.active = tex.brush_map_mode in ('FIXED', 'TILED')
|
||||
row.itemR(tex, "angle")
|
||||
|
||||
row = layout.row()
|
||||
row.active = tex.brush_map_mode in ('TILED', '3D')
|
||||
row.column().itemR(tex, "size")
|
||||
else:
|
||||
row = layout.row()
|
||||
row.column().itemR(tex, "offset")
|
||||
row.column().itemR(tex, "size")
|
||||
|
||||
class TEXTURE_PT_influence(TextureButtonsPanel):
|
||||
__label__ = "Influence"
|
||||
|
||||
@@ -55,8 +55,8 @@ class WORLD_PT_world(WorldButtonsPanel):
|
||||
if world:
|
||||
|
||||
row = layout.row()
|
||||
row.itemR(world, "blend_sky")
|
||||
row.itemR(world, "paper_sky")
|
||||
row.itemR(world, "blend_sky")
|
||||
row.itemR(world, "real_sky")
|
||||
|
||||
row = layout.row()
|
||||
@@ -83,10 +83,11 @@ class WORLD_PT_mist(WorldButtonsPanel):
|
||||
layout.active = world.mist.enabled
|
||||
|
||||
flow = layout.column_flow()
|
||||
flow.itemR(world.mist, "intensity", slider=True)
|
||||
flow.itemR(world.mist, "start")
|
||||
flow.itemR(world.mist, "depth")
|
||||
flow.itemR(world.mist, "height")
|
||||
flow.itemR(world.mist, "intensity", slider=True)
|
||||
|
||||
|
||||
layout.itemR(world.mist, "falloff")
|
||||
|
||||
@@ -146,12 +147,12 @@ class WORLD_PT_ambient_occlusion(WorldButtonsPanel):
|
||||
col.itemL(text="Sampling:")
|
||||
col.itemR(ao, "sample_method", text="")
|
||||
|
||||
sub = col.column(align=True)
|
||||
sub = col.column()
|
||||
sub.itemR(ao, "samples")
|
||||
|
||||
if ao.sample_method == 'ADAPTIVE_QMC':
|
||||
sub.itemR(ao, "threshold")
|
||||
sub.itemR(ao, "adapt_to_speed")
|
||||
sub.itemR(ao, "adapt_to_speed", slider=True)
|
||||
elif ao.sample_method == 'CONSTANT_JITTERED':
|
||||
sub.itemR(ao, "bias")
|
||||
|
||||
|
||||
@@ -5,9 +5,10 @@ class INFO_HT_header(bpy.types.Header):
|
||||
__space_type__ = "USER_PREFERENCES"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
st = context.space_data
|
||||
rd = context.scene.render_data
|
||||
layout = self.layout
|
||||
|
||||
layout.template_header()
|
||||
|
||||
@@ -21,8 +22,8 @@ class INFO_HT_header(bpy.types.Header):
|
||||
row.itemM("INFO_MT_render")
|
||||
row.itemM("INFO_MT_help")
|
||||
|
||||
layout.template_ID(context.window, "screen") #, new="screen.new", open="scene.unlink")
|
||||
layout.template_ID(context.screen, "scene") #, new="screen.new", unlink="scene.unlink")
|
||||
layout.template_ID(context.window, "screen", new="screen.new", unlink="screen.delete")
|
||||
layout.template_ID(context.screen, "scene", new="scene.new", unlink="scene.delete")
|
||||
|
||||
if rd.multiple_engines:
|
||||
layout.itemR(rd, "engine", text="")
|
||||
@@ -142,6 +143,7 @@ class INFO_MT_render(bpy.types.Menu):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
rd = context.scene.render_data
|
||||
|
||||
layout.itemO("screen.render", text="Render Image")
|
||||
@@ -174,6 +176,7 @@ class INFO_PT_tabs(bpy.types.Panel):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
userpref = context.user_preferences
|
||||
|
||||
layout.itemR(userpref, "active_section", expand=True)
|
||||
@@ -189,100 +192,98 @@ class INFO_PT_view(bpy.types.Panel):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
userpref = context.user_preferences
|
||||
view = userpref.view
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
colsplit = col.split(percentage=0.85)
|
||||
colsplitcol = colsplit.column()
|
||||
colsplitcol.itemL(text="Display:")
|
||||
colsplitcol.itemR(view, "tooltips")
|
||||
colsplitcol.itemR(view, "display_object_info", text="Object Info")
|
||||
colsplitcol.itemR(view, "use_large_cursors")
|
||||
colsplitcol.itemR(view, "show_view_name", text="View Name")
|
||||
colsplitcol.itemR(view, "show_playback_fps", text="Playback FPS")
|
||||
colsplitcol.itemR(view, "global_scene")
|
||||
colsplitcol.itemR(view, "pin_floating_panels")
|
||||
colsplitcol.itemR(view, "object_center_size")
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
sub = col.split(percentage=0.85)
|
||||
|
||||
colsplitcol.itemR(view, "show_mini_axis")
|
||||
colsub = colsplitcol.column()
|
||||
colsub.enabled = view.show_mini_axis
|
||||
colsub.itemR(view, "mini_axis_size")
|
||||
colsub.itemR(view, "mini_axis_brightness")
|
||||
sub1 = sub.column()
|
||||
sub1.itemL(text="Display:")
|
||||
sub1.itemR(view, "tooltips")
|
||||
sub1.itemR(view, "display_object_info", text="Object Info")
|
||||
sub1.itemR(view, "use_large_cursors")
|
||||
sub1.itemR(view, "show_view_name", text="View Name")
|
||||
sub1.itemR(view, "show_playback_fps", text="Playback FPS")
|
||||
sub1.itemR(view, "global_scene")
|
||||
sub1.itemR(view, "pin_floating_panels")
|
||||
sub1.itemR(view, "object_center_size")
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemR(view, "show_mini_axis")
|
||||
sub2 = sub1.column()
|
||||
sub2.enabled = view.show_mini_axis
|
||||
sub2.itemR(view, "mini_axis_size")
|
||||
sub2.itemR(view, "mini_axis_brightness")
|
||||
|
||||
col = split.column()
|
||||
sub = col.split(percentage=0.85)
|
||||
|
||||
sub1 = sub.column()
|
||||
sub1.itemL(text="View Manipulation:")
|
||||
sub1.itemR(view, "auto_depth")
|
||||
sub1.itemR(view, "global_pivot")
|
||||
sub1.itemR(view, "zoom_to_mouse")
|
||||
sub1.itemR(view, "rotate_around_selection")
|
||||
sub1.itemS()
|
||||
sub1.itemL(text="Zoom Style:")
|
||||
sub1.row().itemR(view, "viewport_zoom_style", expand=True)
|
||||
sub1.itemL(text="Orbit Style:")
|
||||
sub1.row().itemR(view, "view_rotation", expand=True)
|
||||
sub1.itemR(view, "perspective_orthographic_switch")
|
||||
sub1.itemR(view, "smooth_view")
|
||||
sub1.itemR(view, "rotation_angle")
|
||||
sub1.itemS()
|
||||
sub1.itemL(text="NDOF Device:")
|
||||
sub1.itemR(view, "ndof_pan_speed", text="Pan Speed")
|
||||
sub1.itemR(view, "ndof_rotate_speed", text="Orbit Speed")
|
||||
|
||||
col = split.column()
|
||||
sub = col.split(percentage=0.85)
|
||||
|
||||
sub1 = sub.column()
|
||||
sub1.itemL(text="Mouse Buttons:")
|
||||
sub1.itemR(view, "left_mouse_button_select")
|
||||
sub1.itemR(view, "right_mouse_button_select")
|
||||
sub1.itemR(view, "emulate_3_button_mouse")
|
||||
sub1.itemR(view, "use_middle_mouse_paste")
|
||||
sub1.itemR(view, "middle_mouse_rotate")
|
||||
sub1.itemR(view, "middle_mouse_pan")
|
||||
sub1.itemR(view, "wheel_invert_zoom")
|
||||
sub1.itemR(view, "wheel_scroll_lines")
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemL(text="Menus:")
|
||||
sub1.itemR(view, "open_mouse_over")
|
||||
sub1.itemL(text="Menu Open Delay:")
|
||||
sub1.itemR(view, "open_toplevel_delay", text="Top Level")
|
||||
sub1.itemR(view, "open_sublevel_delay", text="Sub Level")
|
||||
|
||||
|
||||
|
||||
col = split.column()
|
||||
colsplit = col.split(percentage=0.85)
|
||||
colsplitcol = colsplit.column()
|
||||
colsplitcol.itemL(text="View Manipulation:")
|
||||
colsplitcol.itemR(view, "auto_depth")
|
||||
colsplitcol.itemR(view, "global_pivot")
|
||||
colsplitcol.itemR(view, "zoom_to_mouse")
|
||||
colsplitcol.itemR(view, "rotate_around_selection")
|
||||
colsplitcol.itemL(text="Zoom Style:")
|
||||
row = colsplitcol.row()
|
||||
row.itemR(view, "viewport_zoom_style", expand=True)
|
||||
colsplitcol.itemL(text="Orbit Style:")
|
||||
row = colsplitcol.row()
|
||||
row.itemR(view, "view_rotation", expand=True)
|
||||
colsplitcol.itemR(view, "perspective_orthographic_switch")
|
||||
colsplitcol.itemR(view, "smooth_view")
|
||||
colsplitcol.itemR(view, "rotation_angle")
|
||||
colsplitcol.itemL(text="NDOF Device:")
|
||||
colsplitcol.itemR(view, "ndof_pan_speed", text="Pan Speed")
|
||||
colsplitcol.itemR(view, "ndof_rotate_speed", text="Orbit Speed")
|
||||
sub = col.split(percentage=0.85)
|
||||
|
||||
col = split.column()
|
||||
colsplit = col.split(percentage=0.85)
|
||||
colsplitcol = colsplit.column()
|
||||
colsplitcol.itemL(text="Mouse Buttons:")
|
||||
colsplitcol.itemR(view, "left_mouse_button_select")
|
||||
colsplitcol.itemR(view, "right_mouse_button_select")
|
||||
colsplitcol.itemR(view, "emulate_3_button_mouse")
|
||||
colsplitcol.itemR(view, "use_middle_mouse_paste")
|
||||
colsplitcol.itemR(view, "middle_mouse_rotate")
|
||||
colsplitcol.itemR(view, "middle_mouse_pan")
|
||||
colsplitcol.itemR(view, "wheel_invert_zoom")
|
||||
colsplitcol.itemR(view, "wheel_scroll_lines")
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
|
||||
colsplitcol.itemL(text="Menus:")
|
||||
colsplitcol.itemR(view, "open_mouse_over")
|
||||
colsplitcol.itemL(text="Menu Open Delay:")
|
||||
colsplitcol.itemR(view, "open_toplevel_delay", text="Top Level")
|
||||
colsplitcol.itemR(view, "open_sublevel_delay", text="Sub Level")
|
||||
|
||||
|
||||
col = split.column()
|
||||
colsplit = col.split(percentage=0.85)
|
||||
colsplitcol = colsplit.column()
|
||||
sub1 = sub.column()
|
||||
#manipulator
|
||||
colsplitcol.itemR(view, "use_manipulator")
|
||||
colsub = colsplitcol.column()
|
||||
colsub.enabled = view.use_manipulator
|
||||
colsub.itemR(view, "manipulator_size", text="Size")
|
||||
colsub.itemR(view, "manipulator_handle_size", text="Handle Size")
|
||||
colsub.itemR(view, "manipulator_hotspot", text="Hotspot")
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
|
||||
colsplitcol.itemL(text="Toolbox:")
|
||||
colsplitcol.itemR(view, "use_column_layout")
|
||||
colsplitcol.itemL(text="Open Toolbox Delay:")
|
||||
colsplitcol.itemR(view, "open_left_mouse_delay", text="Hold LMB")
|
||||
colsplitcol.itemR(view, "open_right_mouse_delay", text="Hold RMB")
|
||||
sub1.itemR(view, "use_manipulator")
|
||||
sub2 = sub1.column()
|
||||
sub2.enabled = view.use_manipulator
|
||||
sub2.itemR(view, "manipulator_size", text="Size")
|
||||
sub2.itemR(view, "manipulator_handle_size", text="Handle Size")
|
||||
sub2.itemR(view, "manipulator_hotspot", text="Hotspot")
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemL(text="Toolbox:")
|
||||
sub1.itemR(view, "use_column_layout")
|
||||
sub1.itemL(text="Open Toolbox Delay:")
|
||||
sub1.itemR(view, "open_left_mouse_delay", text="Hold LMB")
|
||||
sub1.itemR(view, "open_right_mouse_delay", text="Hold RMB")
|
||||
|
||||
|
||||
class INFO_PT_edit(bpy.types.Panel):
|
||||
__space_type__ = "USER_PREFERENCES"
|
||||
__label__ = "Edit"
|
||||
@@ -294,92 +295,91 @@ class INFO_PT_edit(bpy.types.Panel):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
userpref = context.user_preferences
|
||||
edit = userpref.edit
|
||||
view = userpref.view
|
||||
|
||||
split = layout.split()
|
||||
col = split.column()
|
||||
colsplit = col.split(percentage=0.85)
|
||||
colsplitcol = colsplit.column()
|
||||
|
||||
colsplitcol.itemL(text="Materials:")
|
||||
colsplitcol.itemR(edit, "material_linked_object", text="Linked to Object")
|
||||
colsplitcol.itemR(edit, "material_linked_obdata", text="Linked to ObData")
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
|
||||
colsplitcol.itemL(text="New Objects:")
|
||||
colsplitcol.itemR(edit, "enter_edit_mode")
|
||||
colsplitcol.itemR(edit, "align_to_view")
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
|
||||
colsplitcol.itemL(text="Transform:")
|
||||
colsplitcol.itemR(edit, "drag_immediately")
|
||||
|
||||
col = split.column()
|
||||
colsplit = col.split(percentage=0.85)
|
||||
colsplitcol = colsplit.column()
|
||||
colsplitcol.itemL(text="Snap:")
|
||||
colsplitcol.itemR(edit, "snap_translate", text="Translate")
|
||||
colsplitcol.itemR(edit, "snap_rotate", text="Rotate")
|
||||
colsplitcol.itemR(edit, "snap_scale", text="Scale")
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
sub = col.split(percentage=0.85)
|
||||
|
||||
colsplitcol.itemL(text="Grease Pencil:")
|
||||
colsplitcol.itemR(edit, "grease_pencil_manhattan_distance", text="Manhattan Distance")
|
||||
colsplitcol.itemR(edit, "grease_pencil_euclidean_distance", text="Euclidean Distance")
|
||||
colsplitcol.itemR(edit, "grease_pencil_smooth_stroke", text="Smooth Stroke")
|
||||
# colsplitcol.itemR(edit, "grease_pencil_simplify_stroke", text="Simplify Stroke")
|
||||
colsplitcol.itemR(edit, "grease_pencil_eraser_radius", text="Eraser Radius")
|
||||
|
||||
|
||||
col = split.column()
|
||||
colsplit = col.split(percentage=0.85)
|
||||
colsplitcol = colsplit.column()
|
||||
|
||||
colsplitcol.itemL(text="Keyframing:")
|
||||
colsplitcol.itemR(edit, "use_visual_keying")
|
||||
colsplitcol.itemR(edit, "new_interpolation_type")
|
||||
colsplitcol.itemR(edit, "auto_keying_enable", text="Auto Keyframing")
|
||||
colsub = colsplitcol.column()
|
||||
colsub.enabled = edit.auto_keying_enable
|
||||
row = colsub.row()
|
||||
row.itemR(edit, "auto_keying_mode", expand=True)
|
||||
colsub.itemR(edit, "auto_keyframe_insert_available", text="Only Insert Available")
|
||||
colsub.itemR(edit, "auto_keyframe_insert_needed", text="Only Insert Needed")
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
|
||||
colsplitcol.itemL(text="Undo:")
|
||||
colsplitcol.itemR(edit, "global_undo")
|
||||
colsplitcol.itemR(edit, "undo_steps", text="Steps")
|
||||
colsplitcol.itemR(edit, "undo_memory_limit", text="Memory Limit")
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
sub1 = sub.column()
|
||||
sub1.itemL(text="Materials:")
|
||||
sub1.itemR(edit, "material_linked_object", text="Linked to Object")
|
||||
sub1.itemR(edit, "material_linked_obdata", text="Linked to ObData")
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemL(text="New Objects:")
|
||||
sub1.itemR(edit, "enter_edit_mode")
|
||||
sub1.itemR(edit, "align_to_view")
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemL(text="Transform:")
|
||||
sub1.itemR(edit, "drag_immediately")
|
||||
|
||||
col = split.column()
|
||||
colsplit = col.split(percentage=0.85)
|
||||
colsplitcol = colsplit.column()
|
||||
colsplitcol.itemL(text="Duplicate:")
|
||||
colsplitcol.itemR(edit, "duplicate_mesh", text="Mesh")
|
||||
colsplitcol.itemR(edit, "duplicate_surface", text="Surface")
|
||||
colsplitcol.itemR(edit, "duplicate_curve", text="Curve")
|
||||
colsplitcol.itemR(edit, "duplicate_text", text="Text")
|
||||
colsplitcol.itemR(edit, "duplicate_metaball", text="Metaball")
|
||||
colsplitcol.itemR(edit, "duplicate_armature", text="Armature")
|
||||
colsplitcol.itemR(edit, "duplicate_lamp", text="Lamp")
|
||||
colsplitcol.itemR(edit, "duplicate_material", text="Material")
|
||||
colsplitcol.itemR(edit, "duplicate_texture", text="Texture")
|
||||
colsplitcol.itemR(edit, "duplicate_ipo", text="F-Curve")
|
||||
colsplitcol.itemR(edit, "duplicate_action", text="Action")
|
||||
sub = col.split(percentage=0.85)
|
||||
|
||||
sub1 = sub.column()
|
||||
sub1.itemL(text="Snap:")
|
||||
sub1.itemR(edit, "snap_translate", text="Translate")
|
||||
sub1.itemR(edit, "snap_rotate", text="Rotate")
|
||||
sub1.itemR(edit, "snap_scale", text="Scale")
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemL(text="Grease Pencil:")
|
||||
sub1.itemR(edit, "grease_pencil_manhattan_distance", text="Manhattan Distance")
|
||||
sub1.itemR(edit, "grease_pencil_euclidean_distance", text="Euclidean Distance")
|
||||
sub1.itemR(edit, "grease_pencil_smooth_stroke", text="Smooth Stroke")
|
||||
# sub1.itemR(edit, "grease_pencil_simplify_stroke", text="Simplify Stroke")
|
||||
sub1.itemR(edit, "grease_pencil_eraser_radius", text="Eraser Radius")
|
||||
|
||||
col = split.column()
|
||||
sub = col.split(percentage=0.85)
|
||||
|
||||
sub1 = sub.column()
|
||||
sub1.itemL(text="Keyframing:")
|
||||
sub1.itemR(edit, "use_visual_keying")
|
||||
sub1.itemR(edit, "new_interpolation_type")
|
||||
sub1.itemS()
|
||||
sub1.itemR(edit, "auto_keying_enable", text="Auto Keyframing")
|
||||
sub2 = sub1.column()
|
||||
sub2.enabled = edit.auto_keying_enable
|
||||
sub2.row().itemR(edit, "auto_keying_mode", expand=True)
|
||||
sub2.itemR(edit, "auto_keyframe_insert_available", text="Only Insert Available")
|
||||
sub2.itemR(edit, "auto_keyframe_insert_needed", text="Only Insert Needed")
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemL(text="Undo:")
|
||||
sub1.itemR(edit, "global_undo")
|
||||
sub1.itemR(edit, "undo_steps", text="Steps")
|
||||
sub1.itemR(edit, "undo_memory_limit", text="Memory Limit")
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
|
||||
col = split.column()
|
||||
sub = col.split(percentage=0.85)
|
||||
|
||||
sub1 = sub.column()
|
||||
sub1.itemL(text="Duplicate:")
|
||||
sub1.itemR(edit, "duplicate_mesh", text="Mesh")
|
||||
sub1.itemR(edit, "duplicate_surface", text="Surface")
|
||||
sub1.itemR(edit, "duplicate_curve", text="Curve")
|
||||
sub1.itemR(edit, "duplicate_text", text="Text")
|
||||
sub1.itemR(edit, "duplicate_metaball", text="Metaball")
|
||||
sub1.itemR(edit, "duplicate_armature", text="Armature")
|
||||
sub1.itemR(edit, "duplicate_lamp", text="Lamp")
|
||||
sub1.itemR(edit, "duplicate_material", text="Material")
|
||||
sub1.itemR(edit, "duplicate_texture", text="Texture")
|
||||
sub1.itemR(edit, "duplicate_ipo", text="F-Curve")
|
||||
sub1.itemR(edit, "duplicate_action", text="Action")
|
||||
|
||||
class INFO_PT_system(bpy.types.Panel):
|
||||
__space_type__ = "USER_PREFERENCES"
|
||||
@@ -392,61 +392,75 @@ class INFO_PT_system(bpy.types.Panel):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
userpref = context.user_preferences
|
||||
system = userpref.system
|
||||
lan = userpref.language
|
||||
|
||||
split = layout.split()
|
||||
col = split.column()
|
||||
colsplit = col.split(percentage=0.85)
|
||||
colsplitcol = colsplit.column()
|
||||
colsplitcol.itemR(system, "emulate_numpad")
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
#Weight Colors
|
||||
colsplitcol.itemL(text="Weight Colors:")
|
||||
colsplitcol.itemR(system, "use_weight_color_range", text="Use Custom Range")
|
||||
|
||||
colsub = colsplitcol.column()
|
||||
colsub.active = system.use_weight_color_range
|
||||
colsub.template_color_ramp(system.weight_color_range, expand=True)
|
||||
colsplitcol.itemS()
|
||||
colsplitcol.itemS()
|
||||
col = split.column()
|
||||
sub = col.split(percentage=0.85)
|
||||
|
||||
sub1 = sub.column()
|
||||
sub1.itemR(system, "emulate_numpad")
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
|
||||
#Weight Colors
|
||||
sub1.itemL(text="Weight Colors:")
|
||||
sub1.itemR(system, "use_weight_color_range", text="Use Custom Range")
|
||||
|
||||
sub2 = sub1.column()
|
||||
sub2.active = system.use_weight_color_range
|
||||
sub2.template_color_ramp(system.weight_color_range, expand=True)
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
|
||||
#sequencer
|
||||
colsplitcol.itemL(text="Sequencer:")
|
||||
colsplitcol.itemR(system, "prefetch_frames")
|
||||
colsplitcol.itemR(system, "memory_cache_limit")
|
||||
sub1.itemL(text="Sequencer:")
|
||||
sub1.itemR(system, "prefetch_frames")
|
||||
sub1.itemR(system, "memory_cache_limit")
|
||||
|
||||
col = split.column()
|
||||
colsplit = col.split(percentage=0.85)
|
||||
colsplitcol = colsplit.column()
|
||||
sub = col.split(percentage=0.85)
|
||||
|
||||
sub1 = sub .column()
|
||||
#System
|
||||
colsplitcol.itemL(text="System:")
|
||||
colsplitcol.itemR(lan, "dpi")
|
||||
colsplitcol.itemR(system, "enable_all_codecs")
|
||||
colsplitcol.itemR(system, "auto_run_python_scripts")
|
||||
colsplitcol.itemR(system, "frame_server_port")
|
||||
colsplitcol.itemR(system, "game_sound")
|
||||
colsplitcol.itemR(system, "filter_file_extensions")
|
||||
colsplitcol.itemR(system, "hide_dot_files_datablocks")
|
||||
colsplitcol.itemR(system, "audio_mixing_buffer")
|
||||
colsplitcol.itemR(lan, "scrollback", text="Console Scrollback")
|
||||
sub1.itemL(text="System:")
|
||||
sub1.itemR(lan, "dpi")
|
||||
sub1.itemR(system, "auto_run_python_scripts")
|
||||
sub1.itemR(system, "frame_server_port")
|
||||
sub1.itemR(system, "filter_file_extensions")
|
||||
sub1.itemR(system, "hide_dot_files_datablocks")
|
||||
sub1.itemR(lan, "scrollback", text="Console Scrollback")
|
||||
sub1.itemS()
|
||||
sub1.itemS()
|
||||
sub1.itemL(text="Sound:")
|
||||
sub1.itemR(system, "audio_device")
|
||||
sub2 = sub1.column()
|
||||
sub2.active = system.audio_device != 'AUDIO_DEVICE_NULL'
|
||||
sub2.itemR(system, "enable_all_codecs")
|
||||
sub2.itemR(system, "game_sound")
|
||||
sub2.itemR(system, "audio_channels")
|
||||
sub2.itemR(system, "audio_mixing_buffer")
|
||||
sub2.itemR(system, "audio_sample_rate")
|
||||
sub2.itemR(system, "audio_sample_format")
|
||||
|
||||
col = split.column()
|
||||
colsplit = col.split(percentage=0.85)
|
||||
colsplitcol = colsplit.column()
|
||||
sub = col.split(percentage=0.85)
|
||||
|
||||
sub1 = sub.column()
|
||||
#OpenGL
|
||||
colsplitcol.itemL(text="OpenGL:")
|
||||
colsplitcol.itemR(system, "clip_alpha", slider=True)
|
||||
colsplitcol.itemR(system, "use_mipmaps")
|
||||
colsplitcol.itemL(text="Window Draw Method:")
|
||||
row = colsplitcol.row()
|
||||
row.itemR(system, "window_draw_method", expand=True)
|
||||
colsplitcol.itemL(text="Textures:")
|
||||
colsplitcol.itemR(system, "gl_texture_limit", text="Limit Size")
|
||||
colsplitcol.itemR(system, "texture_time_out", text="Time Out")
|
||||
colsplitcol.itemR(system, "texture_collection_rate", text="Collection Rate")
|
||||
sub1.itemL(text="OpenGL:")
|
||||
sub1.itemR(system, "clip_alpha", slider=True)
|
||||
sub1.itemR(system, "use_mipmaps")
|
||||
sub1.itemL(text="Window Draw Method:")
|
||||
sub1.row().itemR(system, "window_draw_method", expand=True)
|
||||
sub1.itemL(text="Textures:")
|
||||
sub1.itemR(system, "gl_texture_limit", text="Limit Size")
|
||||
sub1.itemR(system, "texture_time_out", text="Time Out")
|
||||
sub1.itemR(system, "texture_collection_rate", text="Collection Rate")
|
||||
|
||||
class INFO_PT_filepaths(bpy.types.Panel):
|
||||
__space_type__ = "USER_PREFERENCES"
|
||||
@@ -459,53 +473,55 @@ class INFO_PT_filepaths(bpy.types.Panel):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
userpref = context.user_preferences
|
||||
paths = userpref.filepaths
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.itemL(text="File Paths:")
|
||||
splitcol = col.split(percentage=0.3)
|
||||
sub = col.split(percentage=0.3)
|
||||
|
||||
splitcol.itemL(text="Fonts:")
|
||||
splitcol.itemR(paths, "fonts_directory", text="")
|
||||
splitcol = col.split(percentage=0.3)
|
||||
splitcol.itemL(text="Textures:")
|
||||
splitcol.itemR(paths, "textures_directory", text="")
|
||||
splitcol = col.split(percentage=0.3)
|
||||
splitcol.itemL(text="Texture Plugins:")
|
||||
splitcol.itemR(paths, "texture_plugin_directory", text="")
|
||||
splitcol = col.split(percentage=0.3)
|
||||
splitcol.itemL(text="Sequence Plugins:")
|
||||
splitcol.itemR(paths, "sequence_plugin_directory", text="")
|
||||
splitcol = col.split(percentage=0.3)
|
||||
splitcol.itemL(text="Render Output:")
|
||||
splitcol.itemR(paths, "render_output_directory", text="")
|
||||
splitcol = col.split(percentage=0.3)
|
||||
splitcol.itemL(text="Scripts:")
|
||||
splitcol.itemR(paths, "python_scripts_directory", text="")
|
||||
splitcol = col.split(percentage=0.3)
|
||||
splitcol.itemL(text="Sounds:")
|
||||
splitcol.itemR(paths, "sounds_directory", text="")
|
||||
splitcol = col.split(percentage=0.3)
|
||||
splitcol.itemL(text="Temp:")
|
||||
splitcol.itemR(paths, "temporary_directory", text="")
|
||||
sub.itemL(text="Fonts:")
|
||||
sub.itemR(paths, "fonts_directory", text="")
|
||||
sub = col.split(percentage=0.3)
|
||||
sub.itemL(text="Textures:")
|
||||
sub.itemR(paths, "textures_directory", text="")
|
||||
sub = col.split(percentage=0.3)
|
||||
sub.itemL(text="Texture Plugins:")
|
||||
sub.itemR(paths, "texture_plugin_directory", text="")
|
||||
sub = col.split(percentage=0.3)
|
||||
sub.itemL(text="Sequence Plugins:")
|
||||
sub.itemR(paths, "sequence_plugin_directory", text="")
|
||||
sub = col.split(percentage=0.3)
|
||||
sub.itemL(text="Render Output:")
|
||||
sub.itemR(paths, "render_output_directory", text="")
|
||||
sub = col.split(percentage=0.3)
|
||||
sub.itemL(text="Scripts:")
|
||||
sub.itemR(paths, "python_scripts_directory", text="")
|
||||
sub = col.split(percentage=0.3)
|
||||
sub.itemL(text="Sounds:")
|
||||
sub.itemR(paths, "sounds_directory", text="")
|
||||
sub = col.split(percentage=0.3)
|
||||
sub.itemL(text="Temp:")
|
||||
sub.itemR(paths, "temporary_directory", text="")
|
||||
|
||||
col = split.column()
|
||||
colsplit = col.split(percentage=0.2)
|
||||
colsplitcol = colsplit.column()
|
||||
colsplitcol = colsplit.column()
|
||||
colsplitcol.itemL(text="Save & Load:")
|
||||
colsplitcol.itemR(paths, "use_relative_paths")
|
||||
colsplitcol.itemR(paths, "compress_file")
|
||||
colsplitcol.itemL(text="Auto Save:")
|
||||
colsplitcol.itemR(paths, "save_version")
|
||||
colsplitcol.itemR(paths, "recent_files")
|
||||
colsplitcol.itemR(paths, "save_preview_images")
|
||||
colsplitcol.itemR(paths, "auto_save_temporary_files")
|
||||
colsub = colsplitcol.column()
|
||||
colsub.enabled = paths.auto_save_temporary_files
|
||||
colsub.itemR(paths, "auto_save_time")
|
||||
sub = col.split(percentage=0.2)
|
||||
sub1 = sub.column()
|
||||
sub2 = sub.column()
|
||||
sub2.itemL(text="Save & Load:")
|
||||
sub2.itemR(paths, "use_relative_paths")
|
||||
sub2.itemR(paths, "compress_file")
|
||||
sub2.itemL(text="Auto Save:")
|
||||
sub2.itemR(paths, "save_version")
|
||||
sub2.itemR(paths, "recent_files")
|
||||
sub2.itemR(paths, "save_preview_images")
|
||||
sub2.itemR(paths, "auto_save_temporary_files")
|
||||
sub3 = sub2.column()
|
||||
sub3.enabled = paths.auto_save_temporary_files
|
||||
sub3.itemR(paths, "auto_save_time")
|
||||
|
||||
class INFO_PT_language(bpy.types.Panel):
|
||||
__space_type__ = "USER_PREFERENCES"
|
||||
@@ -518,6 +534,7 @@ class INFO_PT_language(bpy.types.Panel):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
userpref = context.user_preferences
|
||||
lan = userpref.language
|
||||
|
||||
@@ -614,4 +631,3 @@ bpy.ops.add(HELP_OT_blender_website)
|
||||
bpy.ops.add(HELP_OT_blender_eshop)
|
||||
bpy.ops.add(HELP_OT_developer_community)
|
||||
bpy.ops.add(HELP_OT_user_community)
|
||||
|
||||
|
||||
@@ -10,18 +10,17 @@ class SEQUENCER_HT_header(bpy.types.Header):
|
||||
__space_type__ = "SEQUENCE_EDITOR"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
st = context.space_data
|
||||
layout = self.layout
|
||||
|
||||
layout.template_header()
|
||||
|
||||
if context.area.show_menus:
|
||||
row = layout.row()
|
||||
row.itemR(st, "display_mode", text="")
|
||||
row.itemM("SEQUENCER_MT_view")
|
||||
|
||||
row.itemR(st, "display_mode")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
if st.display_mode == 'SEQUENCER':
|
||||
@@ -32,14 +31,15 @@ class SEQUENCER_HT_header(bpy.types.Header):
|
||||
layout.itemS()
|
||||
row.itemO("sequencer.reload")
|
||||
else:
|
||||
row.itemR(st, "display_channel") # text="Chan"
|
||||
row.itemR(st, "display_channel", text="Channel")
|
||||
|
||||
class SEQUENCER_MT_view(bpy.types.Menu):
|
||||
__space_type__ = "SEQUENCE_EDITOR"
|
||||
__label__ = "View (TODO)"
|
||||
__label__ = "View"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
st = context.space_data
|
||||
|
||||
layout.column()
|
||||
@@ -76,6 +76,7 @@ class SEQUENCER_MT_view(bpy.types.Menu):
|
||||
layout.itemO("sequencer.view_all")
|
||||
layout.itemO("sequencer.view_selected")
|
||||
layout.itemS()
|
||||
layout.itemO("screen.screen_full_area", text="Toggle Full Screen")
|
||||
"""
|
||||
|
||||
|
||||
@@ -106,6 +107,7 @@ class SEQUENCER_MT_select(bpy.types.Menu):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
st = context.space_data
|
||||
|
||||
layout.column()
|
||||
@@ -126,17 +128,18 @@ class SEQUENCER_MT_marker(bpy.types.Menu):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
st = context.space_data
|
||||
|
||||
layout.column()
|
||||
layout.itemO("sequencer.sound_strip_add", text="Add Marker|Ctrl Alt M")
|
||||
layout.itemO("sequencer.sound_strip_add", text="Duplicate Marker|Ctrl Shift D")
|
||||
layout.itemO("sequencer.sound_strip_add", text="Delete Marker|Shift X")
|
||||
layout.itemO("marker.add", text="Add Marker")
|
||||
layout.itemO("marker.duplicate", text="Duplicate Marker")
|
||||
layout.itemO("marker.move", text="Grab/Move Marker")
|
||||
layout.itemO("marker.delete", text="Delete Marker")
|
||||
layout.itemS()
|
||||
layout.itemO("sequencer.sound_strip_add", text="(Re)Name Marker|Ctrl M")
|
||||
layout.itemO("sequencer.sound_strip_add", text="Grab/Move Marker|Ctrl G")
|
||||
layout.itemS()
|
||||
layout.itemO("sequencer.sound_strip_add", text="Transform Markers") # toggle, will be rna - (sseq->flag & SEQ_MARKER_TRANS)
|
||||
layout.itemL(text="ToDo: Name Marker")
|
||||
|
||||
#layout.itemO("sequencer.sound_strip_add", text="Transform Markers") # toggle, will be rna - (sseq->flag & SEQ_MARKER_TRANS)
|
||||
|
||||
class SEQUENCER_MT_add(bpy.types.Menu):
|
||||
__space_type__ = "SEQUENCE_EDITOR"
|
||||
@@ -144,6 +147,7 @@ class SEQUENCER_MT_add(bpy.types.Menu):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
st = context.space_data
|
||||
|
||||
layout.column()
|
||||
@@ -154,29 +158,29 @@ class SEQUENCER_MT_add(bpy.types.Menu):
|
||||
|
||||
layout.itemM("SEQUENCER_MT_add_effect")
|
||||
|
||||
|
||||
class SEQUENCER_MT_add_effect(bpy.types.Menu):
|
||||
__space_type__ = "SEQUENCE_EDITOR"
|
||||
__label__ = "Effect Strip..."
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
st = context.space_data
|
||||
|
||||
self.layout.column()
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'ADD')
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'SUBTRACT')
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'ALPHA_OVER')
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'ALPHA_UNDER')
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'GAMMA_CROSS')
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'MULTIPLY')
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'OVER_DROP')
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'PLUGIN')
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'WIPE')
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'GLOW')
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'TRANSFORM')
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'COLOR')
|
||||
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'SPEED')
|
||||
layout.column()
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'ADD')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'SUBTRACT')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'ALPHA_OVER')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'ALPHA_UNDER')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'GAMMA_CROSS')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'MULTIPLY')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'OVER_DROP')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'PLUGIN')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'WIPE')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'GLOW')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'TRANSFORM')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'COLOR')
|
||||
layout.item_enumO("sequencer.effect_strip_add", 'type', 'SPEED')
|
||||
|
||||
class SEQUENCER_MT_strip(bpy.types.Menu):
|
||||
__space_type__ = "SEQUENCE_EDITOR"
|
||||
@@ -184,6 +188,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
st = context.space_data
|
||||
|
||||
layout.operator_context = 'INVOKE_REGION_WIN'
|
||||
@@ -266,35 +271,47 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel):
|
||||
|
||||
strip = act_strip(context)
|
||||
|
||||
layout.itemR(strip, "name")
|
||||
split = layout.split(percentage=0.3)
|
||||
split.itemL(text="Name:")
|
||||
split.itemR(strip, "name", text="")
|
||||
|
||||
layout.itemR(strip, "type")
|
||||
split = layout.split(percentage=0.3)
|
||||
split.itemL(text="Type:")
|
||||
split.itemR(strip, "type", text="")
|
||||
|
||||
layout.itemR(strip, "blend_mode")
|
||||
split = layout.split(percentage=0.3)
|
||||
split.itemL(text="Blend:")
|
||||
split.itemR(strip, "blend_mode", text="")
|
||||
|
||||
layout.itemR(strip, "blend_opacity", text="Opacity", slider=True)
|
||||
row = layout.row()
|
||||
if strip.mute == True:
|
||||
row.itemR(strip, "mute", toggle=True, icon='ICON_RESTRICT_VIEW_ON', text="")
|
||||
elif strip.mute == False:
|
||||
row.itemR(strip, "mute", toggle=True, icon='ICON_RESTRICT_VIEW_OFF', text="")
|
||||
|
||||
split = layout.split()
|
||||
sub = row.row()
|
||||
sub.active = (not strip.mute)
|
||||
|
||||
col = split.column()
|
||||
col.itemR(strip, "mute")
|
||||
col.itemR(strip, "lock")
|
||||
col.itemR(strip, "frame_locked")
|
||||
sub.itemR(strip, "blend_opacity", text="Opacity", slider=True)
|
||||
|
||||
col = split.column()
|
||||
row = layout.row()
|
||||
row.itemR(strip, "lock")
|
||||
row.itemR(strip, "frame_locked", text="Frame Lock")
|
||||
|
||||
col = layout.column()
|
||||
col.itemR(strip, "channel")
|
||||
col.itemR(strip, "start_frame")
|
||||
col.itemR(strip, "length")
|
||||
|
||||
split = layout.split()
|
||||
col = layout.column(align=True)
|
||||
col.itemL(text="Offset:")
|
||||
col.itemR(strip, "start_offset", text="Start")
|
||||
col.itemR(strip, "end_offset", text="End")
|
||||
|
||||
col = split.column()
|
||||
col.itemR(strip, "start_offset")
|
||||
col.itemR(strip, "start_still")
|
||||
|
||||
col = split.column()
|
||||
col.itemR(strip, "end_offset")
|
||||
col.itemR(strip, "end_still")
|
||||
col = layout.column(align=True)
|
||||
col.itemL(text="Still:")
|
||||
col.itemR(strip, "start_still", text="Start")
|
||||
col.itemR(strip, "end_still", text="End")
|
||||
|
||||
class SEQUENCER_PT_effect(SequencerButtonsPanel):
|
||||
__label__ = "Effect Strip"
|
||||
@@ -318,23 +335,21 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel):
|
||||
layout.itemR(strip, "color")
|
||||
|
||||
elif strip.type == 'WIPE':
|
||||
row = layout.row()
|
||||
row.itemL(text="Transition Type:")
|
||||
row.itemL(text="Direction:")
|
||||
|
||||
row = layout.row()
|
||||
row.itemR(strip, "transition_type", text="")
|
||||
row.itemR(strip, "direction", text="")
|
||||
col = layout.column()
|
||||
col.itemR(strip, "transition_type")
|
||||
col.itemL(text="Direction:")
|
||||
col.row().itemR(strip, "direction", expand=True)
|
||||
|
||||
row = layout.row()
|
||||
row.itemR(strip, "blur_width")
|
||||
col = layout.column()
|
||||
col.itemR(strip, "blur_width", slider=True)
|
||||
if strip.transition_type in ('SINGLE', 'DOUBLE'):
|
||||
row.itemR(strip, "angle")
|
||||
col.itemR(strip, "angle")
|
||||
|
||||
elif strip.type == 'GLOW':
|
||||
flow = layout.column_flow()
|
||||
flow.itemR(strip, "threshold")
|
||||
flow.itemR(strip, "clamp")
|
||||
flow.itemR(strip, "threshold", slider=True)
|
||||
flow.itemR(strip, "clamp", slider=True)
|
||||
flow.itemR(strip, "boost_factor")
|
||||
flow.itemR(strip, "blur_distance")
|
||||
|
||||
@@ -351,42 +366,39 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel):
|
||||
flow.itemR(strip, "frame_blending")
|
||||
|
||||
elif strip.type == 'TRANSFORM':
|
||||
row = layout.row()
|
||||
row.itemL(text="Interpolation:")
|
||||
row.itemL(text="Translation Unit:")
|
||||
|
||||
row = layout.row()
|
||||
row.itemR(strip, "interpolation", text="")
|
||||
row.itemR(strip, "translation_unit", text="")
|
||||
col = layout.column()
|
||||
col.itemR(strip, "interpolation")
|
||||
col.itemR(strip, "translation_unit")
|
||||
|
||||
split = layout.split()
|
||||
col = layout.column(align=True)
|
||||
col.itemL(text="Position X:")
|
||||
col.itemR(strip, "translate_start_x", text="Start")
|
||||
col.itemR(strip, "translate_end_x", text="End")
|
||||
|
||||
col = split.column()
|
||||
sub = col.column(align=True)
|
||||
sub.itemL(text="Position X:")
|
||||
sub.itemR(strip, "translate_start_x", text="Start")
|
||||
sub.itemR(strip, "translate_end_x", text="End")
|
||||
col = layout.column(align=True)
|
||||
col.itemL(text="Position Y:")
|
||||
col.itemR(strip, "translate_start_y", text="Start")
|
||||
col.itemR(strip, "translate_end_y", text="End")
|
||||
|
||||
sub = col.column(align=True)
|
||||
sub.itemL(text="Scale X:")
|
||||
sub.itemR(strip, "scale_start_x", text="Start")
|
||||
sub.itemR(strip, "scale_end_x", text="End")
|
||||
layout.itemS()
|
||||
|
||||
sub = col.column(align=True)
|
||||
sub.itemL(text="Rotation:")
|
||||
sub.itemR(strip, "rotation_start", text="Start")
|
||||
sub.itemR(strip, "rotation_end", text="End")
|
||||
col = layout.column(align=True)
|
||||
col.itemL(text="Scale X:")
|
||||
col.itemR(strip, "scale_start_x", text="Start")
|
||||
col.itemR(strip, "scale_end_x", text="End")
|
||||
|
||||
col = split.column()
|
||||
sub = col.column(align=True)
|
||||
sub.itemL(text="Position Y:")
|
||||
sub.itemR(strip, "translate_start_y", text="Start")
|
||||
sub.itemR(strip, "translate_end_y", text="End")
|
||||
col = layout.column(align=True)
|
||||
col.itemL(text="Scale Y:")
|
||||
col.itemR(strip, "scale_start_y", text="Start")
|
||||
col.itemR(strip, "scale_end_y", text="End")
|
||||
|
||||
sub = col.column(align=True)
|
||||
sub.itemL(text="Scale Y:")
|
||||
sub.itemR(strip, "scale_start_y", text="Start")
|
||||
sub.itemR(strip, "scale_end_y", text="End")
|
||||
layout.itemS()
|
||||
|
||||
col = layout.column(align=True)
|
||||
col.itemL(text="Rotation:")
|
||||
col.itemR(strip, "rotation_start", text="Start")
|
||||
col.itemR(strip, "rotation_end", text="End")
|
||||
|
||||
class SEQUENCER_PT_input(SequencerButtonsPanel):
|
||||
__label__ = "Strip Input"
|
||||
@@ -406,42 +418,38 @@ class SEQUENCER_PT_input(SequencerButtonsPanel):
|
||||
|
||||
strip = act_strip(context)
|
||||
|
||||
split = layout.split(percentage=0.3)
|
||||
sub = split.column()
|
||||
sub.itemL(text="Directory:")
|
||||
sub = split.column()
|
||||
sub.itemR(strip, "directory", text="")
|
||||
layout.itemR(strip, "directory", text="")
|
||||
|
||||
# Current element for the filename
|
||||
split = layout.split(percentage=0.3)
|
||||
sub = split.column()
|
||||
sub.itemL(text="File Name:")
|
||||
sub = split.column()
|
||||
col = split.column()
|
||||
col.itemL(text="File Name:")
|
||||
col = split.column()
|
||||
|
||||
elem = strip.getStripElem(context.scene.current_frame)
|
||||
if elem:
|
||||
sub.itemR(elem, "filename", text="") # strip.elements[0] could be a fallback
|
||||
col.itemR(elem, "filename", text="") # strip.elements[0] could be a fallback
|
||||
|
||||
layout.itemR(strip, "use_translation")
|
||||
layout.itemR(strip, "use_translation", text="Image Offset:")
|
||||
if strip.transform:
|
||||
flow = layout.column_flow()
|
||||
flow.active = strip.use_translation
|
||||
flow.itemR(strip.transform, "offset_x")
|
||||
flow.itemR(strip.transform, "offset_y")
|
||||
|
||||
|
||||
layout.itemR(strip, "use_crop")
|
||||
col = layout.column(align=True)
|
||||
col.active = strip.use_translation
|
||||
col.itemR(strip.transform, "offset_x", text="X")
|
||||
col.itemR(strip.transform, "offset_y", text="Y")
|
||||
|
||||
layout.itemR(strip, "use_crop", text="Image Crop:")
|
||||
if strip.crop:
|
||||
flow = layout.column_flow()
|
||||
flow.active = strip.use_crop
|
||||
flow.itemR(strip.crop, "top")
|
||||
flow.itemR(strip.crop, "left")
|
||||
flow.itemR(strip.crop, "bottom")
|
||||
flow.itemR(strip.crop, "right")
|
||||
|
||||
layout.itemR(strip, "animation_start_offset")
|
||||
layout.itemR(strip, "animation_end_offset")
|
||||
col = layout.column(align=True)
|
||||
col.active = strip.use_crop
|
||||
col.itemR(strip.crop, "top")
|
||||
col.itemR(strip.crop, "left")
|
||||
col.itemR(strip.crop, "bottom")
|
||||
col.itemR(strip.crop, "right")
|
||||
|
||||
col = layout.column(align=True)
|
||||
col.itemL(text="Trim Duration:")
|
||||
col.itemR(strip, "animation_start_offset", text="Start")
|
||||
col.itemR(strip, "animation_end_offset", text="End")
|
||||
|
||||
class SEQUENCER_PT_filter(SequencerButtonsPanel):
|
||||
__label__ = "Filter"
|
||||
@@ -460,17 +468,19 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel):
|
||||
layout = self.layout
|
||||
|
||||
strip = act_strip(context)
|
||||
|
||||
col = layout.column()
|
||||
col.itemL(text="Video:")
|
||||
col.itemR(strip, "strobe")
|
||||
col.itemR(strip, "de_interlace")
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col = layout.column()
|
||||
col.itemL(text="Colors:")
|
||||
col.itemR(strip, "multiply_colors", text="Multiply")
|
||||
col.itemR(strip, "premultiply")
|
||||
col.itemR(strip, "convert_float")
|
||||
col.itemR(strip, "de_interlace")
|
||||
col.itemR(strip, "multiply_colors")
|
||||
col.itemR(strip, "strobe")
|
||||
|
||||
col = split.column()
|
||||
|
||||
col = layout.column()
|
||||
col.itemL(text="Flip:")
|
||||
col.itemR(strip, "flip_x", text="X")
|
||||
col.itemR(strip, "flip_y", text="Y")
|
||||
@@ -482,14 +492,13 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel):
|
||||
row.active = strip.use_color_balance
|
||||
col = row.column()
|
||||
col.itemR(strip.color_balance, "lift")
|
||||
col.itemR(strip.color_balance, "inverse_lift")
|
||||
col.itemR(strip.color_balance, "inverse_lift", text="Inverse")
|
||||
col = row.column()
|
||||
col.itemR(strip.color_balance, "gamma")
|
||||
col.itemR(strip.color_balance, "inverse_gamma")
|
||||
col.itemR(strip.color_balance, "inverse_gamma", text="Inverse")
|
||||
col = row.column()
|
||||
col.itemR(strip.color_balance, "gain")
|
||||
col.itemR(strip.color_balance, "inverse_gain")
|
||||
|
||||
col.itemR(strip.color_balance, "inverse_gain", text="Inverse")
|
||||
|
||||
class SEQUENCER_PT_proxy(SequencerButtonsPanel):
|
||||
__label__ = "Proxy"
|
||||
@@ -505,36 +514,34 @@ class SEQUENCER_PT_proxy(SequencerButtonsPanel):
|
||||
return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META')
|
||||
|
||||
def draw_header(self, context):
|
||||
strip = act_strip(context)
|
||||
|
||||
layout = self.layout
|
||||
|
||||
strip = act_strip(context)
|
||||
|
||||
layout.itemR(strip, "use_proxy", text="")
|
||||
|
||||
def draw(self, context):
|
||||
strip = act_strip(context)
|
||||
|
||||
layout = self.layout
|
||||
|
||||
strip = act_strip(context)
|
||||
|
||||
flow = layout.column_flow()
|
||||
flow.itemR(strip, "proxy_custom_directory")
|
||||
if strip.proxy: # TODO - need to add this somehow
|
||||
flow.itemR(strip.proxy, "directory")
|
||||
flow.itemR(strip.proxy, "file")
|
||||
|
||||
|
||||
class SEQUENCER_PT_view(SequencerButtonsPanel_Output):
|
||||
__label__ = "View Settings"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
st = context.space_data
|
||||
|
||||
layout = self.layout
|
||||
|
||||
flow = layout.column_flow()
|
||||
flow.itemR(st, "draw_overexposed") # text="Zebra"
|
||||
flow.itemR(st, "draw_safe_margin")
|
||||
|
||||
col = layout.column()
|
||||
col.itemR(st, "draw_overexposed") # text="Zebra"
|
||||
col.itemR(st, "draw_safe_margin")
|
||||
|
||||
bpy.types.register(SEQUENCER_HT_header) # header/menu classes
|
||||
bpy.types.register(SEQUENCER_MT_view)
|
||||
|
||||
130
release/ui/space_time.py
Normal file
130
release/ui/space_time.py
Normal file
@@ -0,0 +1,130 @@
|
||||
|
||||
import bpy
|
||||
|
||||
class TIME_HT_header(bpy.types.Header):
|
||||
__space_type__ = "TIMELINE"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
st = context.space_data
|
||||
scene = context.scene
|
||||
rd = context.scene.render_data
|
||||
tools = context.tool_settings
|
||||
screen = context.screen
|
||||
|
||||
layout.template_header()
|
||||
|
||||
if context.area.show_menus:
|
||||
row = layout.row()
|
||||
row.itemM("TIME_MT_view")
|
||||
row.itemM("TIME_MT_frame")
|
||||
row.itemM("TIME_MT_playback")
|
||||
|
||||
layout.itemR(scene, "use_preview_range", text="PR", toggle=True)
|
||||
|
||||
layout.itemS()
|
||||
|
||||
row = layout.row(align=True)
|
||||
if not scene.use_preview_range:
|
||||
row.itemR(scene, "start_frame", text="Start")
|
||||
row.itemR(scene, "end_frame", text="End")
|
||||
else:
|
||||
row.itemR(scene, "preview_range_start_frame", text="Start")
|
||||
row.itemR(scene, "preview_range_end_frame", text="End")
|
||||
|
||||
layout.itemS()
|
||||
layout.itemR(scene, "current_frame", text="")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
row = layout.row(align=True)
|
||||
row.item_booleanO("screen.frame_jump", "end", False, text="", icon='ICON_REW')
|
||||
row.item_booleanO("screen.keyframe_jump", "next", False, text="", icon='ICON_PREV_KEYFRAME')
|
||||
if not screen.animation_playing:
|
||||
row.item_booleanO("screen.animation_play", "reverse", True, text="", icon='ICON_PLAY_REVERSE')
|
||||
row.itemO("screen.animation_play", text="", icon='ICON_PLAY')
|
||||
else:
|
||||
sub = row.row()
|
||||
sub.scale_x = 2.0
|
||||
sub.itemO("screen.animation_play", text="", icon='ICON_PAUSE')
|
||||
row.item_booleanO("screen.keyframe_jump", "next", True, text="", icon='ICON_NEXT_KEYFRAME')
|
||||
row.item_booleanO("screen.frame_jump", "end", True, text="", icon='ICON_FF')
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemR(rd, "sync_audio", text="", toggle=True, icon='ICON_SPEAKER')
|
||||
|
||||
layout.itemS()
|
||||
|
||||
row = layout.row(align=True)
|
||||
row.itemR(tools, "enable_auto_key", text="", toggle=True, icon='ICON_REC')
|
||||
sub = row.row()
|
||||
sub.active = tools.enable_auto_key
|
||||
sub.itemR(tools, "autokey_mode", text="")
|
||||
if screen.animation_playing and tools.enable_auto_key:
|
||||
subsub = row.row()
|
||||
subsub.itemR(tools, "record_with_nla", toggle=True)
|
||||
|
||||
layout.itemS()
|
||||
|
||||
row = layout.row(align=True)
|
||||
row.itemR(scene, "active_keying_set", text="")
|
||||
row.itemO("anim.insert_keyframe", text="", icon="ICON_KEY_HLT")
|
||||
row.itemO("anim.delete_keyframe", text="", icon="ICON_KEY_DEHLT")
|
||||
|
||||
class TIME_MT_view(bpy.types.Menu):
|
||||
__space_type__ = "TIMELINE"
|
||||
__label__ = "View"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
st = context.space_data
|
||||
|
||||
layout.itemO("anim.time_toggle")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemR(st, "only_selected")
|
||||
|
||||
class TIME_MT_frame(bpy.types.Menu):
|
||||
__space_type__ = "TIMELINE"
|
||||
__label__ = "Frame"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("marker.add", text="Add Marker")
|
||||
layout.itemO("marker.duplicate", text="Duplicate Marker")
|
||||
layout.itemO("marker.move", text="Grab/Move Marker")
|
||||
layout.itemO("marker.delete", text="Delete Marker")
|
||||
layout.itemL(text="ToDo: Name Marker")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("time.start_frame_set")
|
||||
layout.itemO("time.end_frame_set")
|
||||
|
||||
class TIME_MT_playback(bpy.types.Menu):
|
||||
__space_type__ = "TIMELINE"
|
||||
__label__ = "Playback"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
st = context.space_data
|
||||
|
||||
layout.itemR(st, "play_top_left")
|
||||
layout.itemR(st, "play_all_3d")
|
||||
layout.itemR(st, "play_anim")
|
||||
layout.itemR(st, "play_buttons")
|
||||
layout.itemR(st, "play_image")
|
||||
layout.itemR(st, "play_sequencer")
|
||||
layout.itemS()
|
||||
layout.itemR(st, "continue_physics")
|
||||
|
||||
bpy.types.register(TIME_HT_header)
|
||||
bpy.types.register(TIME_MT_view)
|
||||
bpy.types.register(TIME_MT_frame)
|
||||
bpy.types.register(TIME_MT_playback)
|
||||
@@ -1,45 +1,43 @@
|
||||
|
||||
import bpy
|
||||
|
||||
# ********** Header ****************
|
||||
# ********** Header **********
|
||||
|
||||
class VIEW3D_HT_header(bpy.types.Header):
|
||||
__space_type__ = "VIEW_3D"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
|
||||
view = context.space_data
|
||||
mode_string = context.mode
|
||||
edit_object = context.edit_object
|
||||
|
||||
layout.template_header()
|
||||
|
||||
# menus
|
||||
|
||||
# Menus
|
||||
if context.area.show_menus:
|
||||
row = layout.row()
|
||||
|
||||
row.itemM("VIEW3D_MT_view")
|
||||
|
||||
# Select Menu
|
||||
if mode_string not in ('EDIT_TEXT', 'SCULPT', 'PAINT_WEIGHT', 'PAINT_VERTEX', 'PAINT_TEXTURE', 'PARTICLE'):
|
||||
# XXX: Particle Mode has Select Menu.
|
||||
row.itemM("VIEW3D_MT_select_%s" % mode_string)
|
||||
|
||||
if mode_string == 'OBJECT':
|
||||
row.itemM("VIEW3D_MT_object")
|
||||
elif mode_string == 'SCULPT':
|
||||
row.itemM("VIEW3D_MT_sculpt")
|
||||
elif edit_object:
|
||||
row.itemM("VIEW3D_MT_edit_%s" % edit_object.type)
|
||||
|
||||
layout.template_header_3D()
|
||||
|
||||
# ********** Menu ****************
|
||||
# ********** Menu **********
|
||||
|
||||
class VIEW3D_MT_view_navigation(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Navigation"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
# layout.itemO("view3d.view_fly_mode")
|
||||
# layout.itemS()
|
||||
|
||||
layout.items_enumO("view3d.view_orbit", "type")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.items_enumO("view3d.view_pan", "type")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_floatO("view3d.zoom", "delta", 1.0, text="Zoom In")
|
||||
layout.item_floatO("view3d.zoom", "delta", -1.0, text="Zoom Out")
|
||||
# ********** View menus **********
|
||||
|
||||
class VIEW3D_MT_view(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
@@ -94,8 +92,848 @@ class VIEW3D_MT_view(bpy.types.Menu):
|
||||
|
||||
layout.itemO("screen.region_foursplit", text="Toggle Quad View")
|
||||
layout.itemO("screen.screen_full_area", text="Toggle Full Screen")
|
||||
|
||||
class VIEW3D_MT_view_navigation(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Navigation"
|
||||
|
||||
# ********** Panel ****************
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
# layout.itemO("view3d.view_fly_mode")
|
||||
# layout.itemS()
|
||||
|
||||
layout.items_enumO("view3d.view_orbit", "type")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.items_enumO("view3d.view_pan", "type")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_floatO("view3d.zoom", "delta", 1.0, text="Zoom In")
|
||||
layout.item_floatO("view3d.zoom", "delta", -1.0, text="Zoom Out")
|
||||
|
||||
# ********** Select menus, suffix from context.mode **********
|
||||
|
||||
class VIEW3D_MT_select_OBJECT(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Select"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("view3d.select_border")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("object.select_all_toggle", text="Select/Deselect All")
|
||||
layout.itemO("object.select_inverse", text="Inverse")
|
||||
layout.itemO("object.select_random", text="Random")
|
||||
layout.itemO("object.select_by_layer", text="Select All by Layer")
|
||||
layout.item_enumO("object.select_by_type", "type", "", text="Select All by Type")
|
||||
layout.itemO("object.select_grouped", text="Select Grouped")
|
||||
|
||||
class VIEW3D_MT_select_POSE(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Select"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("view3d.select_border")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("pose.select_all_toggle", text="Select/Deselect All")
|
||||
layout.itemO("pose.select_inverse", text="Inverse")
|
||||
layout.itemO("pose.select_constraint_target", text="Constraint Target")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_enumO("pose.select_hierarchy", "direction", 'PARENT')
|
||||
layout.item_enumO("pose.select_hierarchy", "direction", 'CHILD')
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.view3d_select_posemenu()
|
||||
|
||||
class VIEW3D_MT_select_PARTICLE(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Select"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("view3d.select_border")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("particle.select_all_toggle", text="Select/Deselect All")
|
||||
layout.itemO("particle.select_linked")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
#layout.itemO("particle.select_last")
|
||||
#layout.itemO("particle.select_first")
|
||||
|
||||
layout.itemO("particle.select_more")
|
||||
layout.itemO("particle.select_less")
|
||||
|
||||
class VIEW3D_MT_select_EDIT_MESH(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Select"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("view3d.select_border")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mesh.select_all_toggle", text="Select/Deselect All")
|
||||
layout.itemO("mesh.select_inverse", text="Inverse")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mesh.select_random", text="Random...")
|
||||
layout.itemO("mesh.edges_select_sharp", text="Sharp Edges")
|
||||
layout.itemO("mesh.faces_select_linked_flat", text="Linked Flat Faces")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_enumO("mesh.select_by_number_vertices", "type", 'TRIANGLES', text="Triangles")
|
||||
layout.item_enumO("mesh.select_by_number_vertices", "type", 'QUADS', text="Quads")
|
||||
layout.item_enumO("mesh.select_by_number_vertices", "type", 'OTHER', text="Loose Verts/Edges")
|
||||
layout.itemO("mesh.select_similar", text="Similar...")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mesh.select_less", text="Less")
|
||||
layout.itemO("mesh.select_more", text="More")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mesh.select_linked", text="Linked")
|
||||
layout.itemO("mesh.select_vertex_path", text="Vertex Path")
|
||||
layout.itemO("mesh.loop_multi_select", text="Edge Loop")
|
||||
layout.item_booleanO("mesh.loop_multi_select", "ring", True, text="Edge Ring")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mesh.loop_to_region")
|
||||
layout.itemO("mesh.region_to_loop")
|
||||
|
||||
class VIEW3D_MT_select_EDIT_CURVE(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Select"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("view3d.select_border")
|
||||
layout.itemO("view3d.select_circle")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("curve.select_all_toggle", text="Select/Deselect All")
|
||||
layout.itemO("curve.select_inverse")
|
||||
layout.itemO("curve.select_random")
|
||||
layout.itemO("curve.select_every_nth")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("curve.de_select_first")
|
||||
layout.itemO("curve.de_select_last")
|
||||
layout.itemO("curve.select_next")
|
||||
layout.itemO("curve.select_previous")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("curve.select_more")
|
||||
layout.itemO("curve.select_less")
|
||||
|
||||
class VIEW3D_MT_select_EDIT_SURFACE(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Select"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("view3d.select_border")
|
||||
layout.itemO("view3d.select_circle")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("curve.select_all_toggle", text="Select/Deselect All")
|
||||
layout.itemO("curve.select_inverse")
|
||||
layout.itemO("curve.select_random")
|
||||
layout.itemO("curve.select_every_nth")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("curve.select_row")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("curve.select_more")
|
||||
layout.itemO("curve.select_less")
|
||||
|
||||
class VIEW3D_MT_select_EDIT_METABALL(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Select"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("view3d.select_border")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemL(text="Select/Deselect All")
|
||||
layout.itemL(text="Inverse")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemL(text="Random")
|
||||
|
||||
class VIEW3D_MT_select_EDIT_LATTICE(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Select"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("view3d.select_border")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("lattice.select_all_toggle", text="Select/Deselect All")
|
||||
|
||||
class VIEW3D_MT_select_EDIT_ARMATURE(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Select"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("view3d.select_border")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("armature.select_all_toggle", text="Select/Deselect All")
|
||||
layout.itemO("armature.select_inverse", text="Inverse")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_enumO("armature.select_hierarchy", "direction", 'PARENT')
|
||||
layout.item_enumO("armature.select_hierarchy", "direction", 'CHILD')
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.view3d_select_armaturemenu()
|
||||
|
||||
class VIEW3D_MT_select_FACE(bpy.types.Menu):# XXX no matching enum
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Select"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.view3d_select_faceselmenu()
|
||||
|
||||
# ********** Object menu **********
|
||||
|
||||
class VIEW3D_MT_object(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__context__ = "objectmode"
|
||||
__label__ = "Object"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemM("VIEW3D_MT_object_clear")
|
||||
layout.itemM("VIEW3D_MT_object_snap")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("anim.insert_keyframe_menu")
|
||||
layout.itemO("anim.delete_keyframe_v3d")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("object.duplicate")
|
||||
layout.item_booleanO("object.duplicate", "linked", True, text="Duplicate Linked")
|
||||
layout.itemO("object.delete")
|
||||
layout.itemO("object.proxy_make")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemM("VIEW3D_MT_object_parent")
|
||||
layout.itemM("VIEW3D_MT_object_track")
|
||||
layout.itemM("VIEW3D_MT_object_group")
|
||||
layout.itemM("VIEW3D_MT_object_constraints")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("object.join")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemM("VIEW3D_MT_object_show")
|
||||
|
||||
class VIEW3D_MT_object_clear(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Clear"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("object.location_clear")
|
||||
layout.itemO("object.rotation_clear")
|
||||
layout.itemO("object.scale_clear")
|
||||
layout.itemO("object.origin_clear")
|
||||
|
||||
class VIEW3D_MT_object_snap(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Snap"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("view3d.snap_selected_to_grid")
|
||||
layout.itemO("view3d.snap_selected_to_cursor")
|
||||
layout.itemO("view3d.snap_selected_to_center")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("view3d.snap_cursor_to_selected")
|
||||
layout.itemO("view3d.snap_cursor_to_grid")
|
||||
layout.itemO("view3d.snap_cursor_to_active")
|
||||
|
||||
class VIEW3D_MT_object_parent(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Parent"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("object.parent_set")
|
||||
layout.itemO("object.parent_clear")
|
||||
|
||||
class VIEW3D_MT_object_track(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Track"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("object.track_set")
|
||||
layout.itemO("object.track_clear")
|
||||
|
||||
class VIEW3D_MT_object_group(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Group"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("group.group_create")
|
||||
layout.itemO("group.objects_remove")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("group.objects_add_active")
|
||||
layout.itemO("group.objects_remove_active")
|
||||
|
||||
class VIEW3D_MT_object_constraints(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Constraints"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("object.constraint_add_with_targets")
|
||||
layout.itemO("object.constraints_clear")
|
||||
|
||||
class VIEW3D_MT_object_show(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Show/Hide"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("object.restrictview_clear")
|
||||
layout.itemO("object.restrictview_set")
|
||||
layout.item_booleanO("object.restrictview_set", "unselected", True, text="Hide Unselected")
|
||||
|
||||
# ********** Sculpt menu **********
|
||||
|
||||
class VIEW3D_MT_sculpt(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Sculpt"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
sculpt = context.tool_settings.sculpt
|
||||
brush = context.tool_settings.sculpt.brush
|
||||
|
||||
layout.itemR(sculpt, "symmetry_x")
|
||||
layout.itemR(sculpt, "symmetry_y")
|
||||
layout.itemR(sculpt, "symmetry_z")
|
||||
layout.itemS()
|
||||
layout.itemR(sculpt, "lock_x")
|
||||
layout.itemR(sculpt, "lock_y")
|
||||
layout.itemR(sculpt, "lock_z")
|
||||
layout.itemS()
|
||||
layout.item_menu_enumO("brush.curve_preset", property="shape")
|
||||
layout.itemS()
|
||||
|
||||
if brush.sculpt_tool != 'GRAB':
|
||||
layout.itemR(brush, "airbrush")
|
||||
|
||||
if brush.sculpt_tool != 'LAYER':
|
||||
layout.itemR(brush, "anchored")
|
||||
|
||||
if brush.sculpt_tool in ('DRAW', 'PINCH', 'INFLATE', 'LAYER', 'CLAY'):
|
||||
layout.itemR(brush, "flip_direction")
|
||||
|
||||
if brush.sculpt_tool == 'LAYER':
|
||||
layout.itemR(brush, "persistent")
|
||||
layout.itemO("sculpt.set_persistent_base")
|
||||
|
||||
# ********** Edit Menus, suffix from ob.type **********
|
||||
|
||||
class VIEW3D_MT_edit_snap(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Snap"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("view3d.snap_selected_to_grid")
|
||||
layout.itemO("view3d.snap_selected_to_cursor")
|
||||
layout.itemO("view3d.snap_selected_to_center")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("view3d.snap_cursor_to_selected")
|
||||
layout.itemO("view3d.snap_cursor_to_grid")
|
||||
layout.itemO("view3d.snap_cursor_to_active")
|
||||
|
||||
# Edit MESH
|
||||
class VIEW3D_MT_edit_MESH(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Mesh"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
settings = context.tool_settings
|
||||
|
||||
layout.itemO("ed.undo")
|
||||
layout.itemO("ed.redo")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_snap")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("uv.mapping_menu")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mesh.extrude")
|
||||
layout.itemO("mesh.duplicate")
|
||||
layout.itemO("mesh.delete")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_MESH_vertices")
|
||||
layout.itemM("VIEW3D_MT_edit_MESH_edges")
|
||||
layout.itemM("VIEW3D_MT_edit_MESH_faces")
|
||||
layout.itemM("VIEW3D_MT_edit_MESH_normals")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemR(settings, "automerge_editing")
|
||||
layout.itemR(settings, "proportional_editing")
|
||||
layout.item_menu_enumR(settings, "proportional_editing_falloff")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_MESH_showhide")
|
||||
|
||||
class VIEW3D_MT_edit_MESH_vertices(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Vertices"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("mesh.merge")
|
||||
layout.itemO("mesh.rip")
|
||||
layout.itemO("mesh.split")
|
||||
layout.itemO("mesh.separate")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mesh.vertices_smooth")
|
||||
layout.itemO("mesh.remove_doubles")
|
||||
|
||||
class VIEW3D_MT_edit_MESH_edges(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Edges"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("mesh.edge_face_add")
|
||||
layout.itemO("mesh.subdivide")
|
||||
layout.item_floatO("mesh.subdivide", "smoothness", 1.0, text="Subdivide Smooth")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mesh.mark_seam")
|
||||
layout.item_booleanO("mesh.mark_seam", "clear", True, text="Clear Seam")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mesh.mark_sharp")
|
||||
layout.item_booleanO("mesh.mark_sharp", "clear", True, text="Clear Sharp")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_enumO("mesh.edge_rotate", "direction", 'CW', text="Rotate Edge CW")
|
||||
layout.item_enumO("mesh.edge_rotate", "direction", 'CCW', text="Rotate Edge CCW")
|
||||
|
||||
class VIEW3D_MT_edit_MESH_faces(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Faces"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("mesh.edge_face_add")
|
||||
layout.itemO("mesh.fill")
|
||||
layout.itemO("mesh.beauty_fill")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mesh.quads_convert_to_tris")
|
||||
layout.itemO("mesh.tris_convert_to_quads")
|
||||
layout.itemO("mesh.edge_flip")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mesh.faces_shade_smooth")
|
||||
layout.itemO("mesh.faces_shade_flat")
|
||||
|
||||
class VIEW3D_MT_edit_MESH_normals(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Normals"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("mesh.normals_make_consistent", text="Recalculate Outside")
|
||||
layout.item_booleanO("mesh.normals_make_consistent", "inside", True, text="Recalculate Inside")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mesh.flip_normals")
|
||||
|
||||
class VIEW3D_MT_edit_MESH_showhide(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Show/Hide"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("mesh.reveal")
|
||||
layout.itemO("mesh.hide")
|
||||
layout.item_booleanO("mesh.hide", "unselected", True, text="Hide Unselected")
|
||||
|
||||
# Edit CURVE
|
||||
|
||||
# draw_CURVE is used by VIEW3D_MT_edit_CURVE and VIEW3D_MT_edit_SURFACE
|
||||
def draw_CURVE(self, context):
|
||||
layout = self.layout
|
||||
|
||||
settings = context.tool_settings
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_snap")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("curve.extrude")
|
||||
layout.itemO("curve.duplicate")
|
||||
layout.itemO("curve.separate")
|
||||
layout.itemO("curve.make_segment")
|
||||
layout.itemO("curve.cyclic_toggle")
|
||||
layout.itemO("curve.delete")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_CURVE_ctrlpoints")
|
||||
layout.itemM("VIEW3D_MT_edit_CURVE_segments")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemR(settings, "proportional_editing")
|
||||
layout.item_menu_enumR(settings, "proportional_editing_falloff")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_CURVE_showhide")
|
||||
|
||||
class VIEW3D_MT_edit_CURVE(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Curve"
|
||||
|
||||
draw = draw_CURVE
|
||||
|
||||
class VIEW3D_MT_edit_CURVE_ctrlpoints(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Control Points"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
edit_object = context.edit_object
|
||||
|
||||
if edit_object.type == 'CURVE':
|
||||
layout.item_enumO("tfm.transform", "mode", 'TILT')
|
||||
layout.itemO("curve.tilt_clear")
|
||||
layout.itemO("curve.separate")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_menu_enumO("curve.handle_type_set", "type")
|
||||
|
||||
class VIEW3D_MT_edit_CURVE_segments(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Segments"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("curve.subdivide")
|
||||
layout.itemO("curve.switch_direction")
|
||||
|
||||
class VIEW3D_MT_edit_CURVE_showhide(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Show/Hide"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("curve.reveal")
|
||||
layout.itemO("curve.hide")
|
||||
layout.item_booleanO("curve.hide", "unselected", True, text="Hide Unselected")
|
||||
|
||||
# Edit SURFACE
|
||||
class VIEW3D_MT_edit_SURFACE(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Surface"
|
||||
|
||||
draw = draw_CURVE
|
||||
|
||||
# Edit TEXT
|
||||
class VIEW3D_MT_edit_TEXT(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Text"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("font.file_paste")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_TEXT_chars")
|
||||
|
||||
class VIEW3D_MT_edit_TEXT_chars(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Special Characters"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xA9'.decode(), text="Copyright|Alt C")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xAE'.decode(), text="Registered Trademark|Alt R")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xB0'.decode(), text="Degree Sign|Alt G")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC3\x97'.decode(), text="Multiplication Sign|Alt x")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\x8A'.decode(), text="Circle|Alt .")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xB9'.decode(), text="Superscript 1|Alt 1")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xB2'.decode(), text="Superscript 2|Alt 2")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xB3'.decode(), text="Superscript 3|Alt 3")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xBB'.decode(), text="Double >>|Alt >")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xAB'.decode(), text="Double <<|Alt <")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xE2\x80\xB0'.decode(), text="Promillage|Alt %")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xA4'.decode(), text="Dutch Florin|Alt F")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xA3'.decode(), text="British Pound|Alt L")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xA5'.decode(), text="Japanese Yen|Alt Y")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC3\x9F'.decode(), text="German S|Alt S")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xBF'.decode(), text="Spanish Question Mark|Alt ?")
|
||||
layout.item_stringO("font.text_insert", "text", b'\xC2\xA1'.decode(), text="Spanish Exclamation Mark|Alt !")
|
||||
|
||||
# Edit META
|
||||
class VIEW3D_MT_edit_META(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Metaball"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
settings = context.tool_settings
|
||||
|
||||
layout.itemO("ed.undo")
|
||||
layout.itemO("ed.redo")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_snap")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("mball.delete_metaelems")
|
||||
layout.itemO("mball.duplicate_metaelems")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemR(settings, "proportional_editing")
|
||||
layout.item_menu_enumR(settings, "proportional_editing_falloff")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_META_showhide")
|
||||
|
||||
class VIEW3D_MT_edit_META_showhide(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Show/Hide"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("mball.reveal_metaelems")
|
||||
layout.itemO("mball.hide_metaelems")
|
||||
layout.item_booleanO("mball.hide_metaelems", "unselected", True, text="Hide Unselected")
|
||||
|
||||
# Edit LATTICE
|
||||
class VIEW3D_MT_edit_LATTICE(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Lattice"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
settings = context.tool_settings
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_snap")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("lattice.make_regular")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemR(settings, "proportional_editing")
|
||||
layout.item_menu_enumR(settings, "proportional_editing_falloff")
|
||||
|
||||
# Edit ARMATURE
|
||||
class VIEW3D_MT_edit_ARMATURE(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Armature"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
edit_object = context.edit_object
|
||||
arm = edit_object.data
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_snap")
|
||||
layout.itemM("VIEW3D_MT_edit_ARMATURE_roll")
|
||||
|
||||
if arm.drawtype == 'ENVELOPE':
|
||||
layout.item_enumO("tfm.transform", "mode", 'BONESIZE', text="Scale Envelope Distance")
|
||||
else:
|
||||
layout.item_enumO("tfm.transform", "mode", 'BONESIZE', text="Scale B-Bone Width")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("armature.extrude")
|
||||
|
||||
if arm.x_axis_mirror:
|
||||
layout.item_booleanO("armature.extrude", "forked", True, text="Extrude Forked")
|
||||
|
||||
layout.itemO("armature.duplicate")
|
||||
layout.itemO("armature.merge")
|
||||
layout.itemO("armature.fill")
|
||||
layout.itemO("armature.delete")
|
||||
layout.itemO("armature.separate")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("armature.subdivide_simple")
|
||||
layout.itemO("armature.subdivide_multi")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_enumO("armature.autoside_names", "axis", 'XAXIS', text="AutoName Left/Right")
|
||||
layout.item_enumO("armature.autoside_names", "axis", 'YAXIS', text="AutoName Front/Back")
|
||||
layout.item_enumO("armature.autoside_names", "axis", 'ZAXIS', text="AutoName Top/Bottom")
|
||||
layout.itemO("armature.flip_names")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemO("armature.armature_layers")
|
||||
layout.itemO("armature.bone_layers")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.itemM("VIEW3D_MT_edit_ARMATURE_parent")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_menu_enumO("armature.flags_set", "mode", text="Bone Settings")
|
||||
|
||||
class VIEW3D_MT_edit_ARMATURE_parent(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Parent"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.itemO("armature.parent_set")
|
||||
layout.itemO("armature.parent_clear")
|
||||
|
||||
class VIEW3D_MT_edit_ARMATURE_roll(bpy.types.Menu):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__label__ = "Bone Roll"
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
layout.item_enumO("armature.calculate_roll", "type", 'GLOBALUP', text="Clear Roll (Z-Axis Up)")
|
||||
layout.item_enumO("armature.calculate_roll", "type", 'CURSOR', text="Roll to Cursor")
|
||||
|
||||
layout.itemS()
|
||||
|
||||
layout.item_enumO("tfm.transform", "mode", 'BONE_ROLL', text="Set Roll")
|
||||
|
||||
# ********** Panel **********
|
||||
|
||||
class VIEW3D_PT_3dview_properties(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
@@ -198,9 +1036,61 @@ class VIEW3D_PT_background_image(bpy.types.Panel):
|
||||
col.itemR(bg, "x_offset", text="X")
|
||||
col.itemR(bg, "y_offset", text="Y")
|
||||
|
||||
bpy.types.register(VIEW3D_HT_header) # Header
|
||||
|
||||
bpy.types.register(VIEW3D_MT_view) #View Menus
|
||||
bpy.types.register(VIEW3D_MT_view_navigation)
|
||||
bpy.types.register(VIEW3D_MT_view)
|
||||
bpy.types.register(VIEW3D_HT_header)
|
||||
bpy.types.register(VIEW3D_PT_3dview_properties)
|
||||
|
||||
bpy.types.register(VIEW3D_MT_select_OBJECT) # Select Menus
|
||||
bpy.types.register(VIEW3D_MT_select_POSE)
|
||||
bpy.types.register(VIEW3D_MT_select_PARTICLE)
|
||||
bpy.types.register(VIEW3D_MT_select_EDIT_MESH)
|
||||
bpy.types.register(VIEW3D_MT_select_EDIT_CURVE)
|
||||
bpy.types.register(VIEW3D_MT_select_EDIT_SURFACE)
|
||||
bpy.types.register(VIEW3D_MT_select_EDIT_METABALL)
|
||||
bpy.types.register(VIEW3D_MT_select_EDIT_LATTICE)
|
||||
bpy.types.register(VIEW3D_MT_select_EDIT_ARMATURE)
|
||||
bpy.types.register(VIEW3D_MT_select_FACE) # XXX todo
|
||||
|
||||
bpy.types.register(VIEW3D_MT_object) # Object Menu
|
||||
bpy.types.register(VIEW3D_MT_object_clear)
|
||||
bpy.types.register(VIEW3D_MT_object_snap)
|
||||
bpy.types.register(VIEW3D_MT_object_parent)
|
||||
bpy.types.register(VIEW3D_MT_object_track)
|
||||
bpy.types.register(VIEW3D_MT_object_group)
|
||||
bpy.types.register(VIEW3D_MT_object_constraints)
|
||||
bpy.types.register(VIEW3D_MT_object_show)
|
||||
|
||||
bpy.types.register(VIEW3D_MT_sculpt) # Sculpt Menu
|
||||
|
||||
bpy.types.register(VIEW3D_MT_edit_snap) # Edit Menus
|
||||
|
||||
bpy.types.register(VIEW3D_MT_edit_MESH)
|
||||
bpy.types.register(VIEW3D_MT_edit_MESH_vertices)
|
||||
bpy.types.register(VIEW3D_MT_edit_MESH_edges)
|
||||
bpy.types.register(VIEW3D_MT_edit_MESH_faces)
|
||||
bpy.types.register(VIEW3D_MT_edit_MESH_normals)
|
||||
bpy.types.register(VIEW3D_MT_edit_MESH_showhide)
|
||||
|
||||
bpy.types.register(VIEW3D_MT_edit_CURVE)
|
||||
bpy.types.register(VIEW3D_MT_edit_CURVE_ctrlpoints)
|
||||
bpy.types.register(VIEW3D_MT_edit_CURVE_segments)
|
||||
bpy.types.register(VIEW3D_MT_edit_CURVE_showhide)
|
||||
|
||||
bpy.types.register(VIEW3D_MT_edit_SURFACE)
|
||||
|
||||
bpy.types.register(VIEW3D_MT_edit_TEXT)
|
||||
bpy.types.register(VIEW3D_MT_edit_TEXT_chars)
|
||||
|
||||
bpy.types.register(VIEW3D_MT_edit_META)
|
||||
bpy.types.register(VIEW3D_MT_edit_META_showhide)
|
||||
|
||||
bpy.types.register(VIEW3D_MT_edit_LATTICE)
|
||||
|
||||
bpy.types.register(VIEW3D_MT_edit_ARMATURE)
|
||||
bpy.types.register(VIEW3D_MT_edit_ARMATURE_parent)
|
||||
bpy.types.register(VIEW3D_MT_edit_ARMATURE_roll)
|
||||
|
||||
bpy.types.register(VIEW3D_PT_3dview_properties) # Panels
|
||||
bpy.types.register(VIEW3D_PT_3dview_display)
|
||||
bpy.types.register(VIEW3D_PT_background_image)
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
|
||||
import bpy
|
||||
|
||||
# ********** default tools for objectmode ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
__context__ = "objectmode"
|
||||
|
||||
# ********** default tools for objectmode ****************
|
||||
|
||||
class VIEW3D_PT_tools_objectmode(View3DPanel):
|
||||
__context__ = "objectmode"
|
||||
__label__ = "Object Tools"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -43,12 +43,8 @@ class VIEW3D_PT_tools_objectmode(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_mesh ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
__context__ = "editmode_mesh"
|
||||
|
||||
class VIEW3D_PT_tools_editmode_mesh(View3DPanel):
|
||||
class VIEW3D_PT_tools_meshedit(View3DPanel):
|
||||
__context__ = "mesh_edit"
|
||||
__label__ = "Mesh Tools"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -90,12 +86,8 @@ class VIEW3D_PT_tools_editmode_mesh(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_curve ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
__context__ = "editmode_curve"
|
||||
|
||||
class VIEW3D_PT_tools_editmode_curve(View3DPanel):
|
||||
class VIEW3D_PT_tools_curveedit(View3DPanel):
|
||||
__context__ = "curve_edit"
|
||||
__label__ = "Curve Tools"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -124,12 +116,8 @@ class VIEW3D_PT_tools_editmode_curve(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_surface ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
__context__ = "editmode_surface"
|
||||
|
||||
class VIEW3D_PT_tools_editmode_surface(View3DPanel):
|
||||
class VIEW3D_PT_tools_surfaceedit(View3DPanel):
|
||||
__context__ = "surface_edit"
|
||||
__label__ = "Surface Tools"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -158,12 +146,8 @@ class VIEW3D_PT_tools_editmode_surface(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_text ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
__context__ = "editmode_text"
|
||||
|
||||
class VIEW3D_PT_tools_editmode_text(View3DPanel):
|
||||
class VIEW3D_PT_tools_textedit(View3DPanel):
|
||||
__context__ = "text_edit"
|
||||
__label__ = "Text Tools"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -179,12 +163,8 @@ class VIEW3D_PT_tools_editmode_text(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_armature ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
__context__ = "editmode_armature"
|
||||
|
||||
class VIEW3D_PT_tools_editmode_armature(View3DPanel):
|
||||
class VIEW3D_PT_tools_armatureedit(View3DPanel):
|
||||
__context__ = "armature_edit"
|
||||
__label__ = "Armature Tools"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -209,12 +189,8 @@ class VIEW3D_PT_tools_editmode_armature(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_mball ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
__context__ = "editmode_mball"
|
||||
|
||||
class VIEW3D_PT_tools_editmode_mball(View3DPanel):
|
||||
class VIEW3D_PT_tools_mballedit(View3DPanel):
|
||||
__context__ = "mball_edit"
|
||||
__label__ = "Meta Tools"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -229,12 +205,8 @@ class VIEW3D_PT_tools_editmode_mball(View3DPanel):
|
||||
|
||||
# ********** default tools for editmode_lattice ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
__context__ = "editmode_lattice"
|
||||
|
||||
class VIEW3D_PT_tools_editmode_lattice(View3DPanel):
|
||||
class VIEW3D_PT_tools_latticeedit(View3DPanel):
|
||||
__context__ = "lattice_edit"
|
||||
__label__ = "Lattice Tools"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -249,12 +221,8 @@ class VIEW3D_PT_tools_editmode_lattice(View3DPanel):
|
||||
|
||||
# ********** default tools for posemode ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
__context__ = "pose_mode"
|
||||
|
||||
class VIEW3D_PT_tools_posemode(View3DPanel):
|
||||
__context__ = "posemode"
|
||||
__label__ = "Pose Tools"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -324,10 +292,14 @@ class VIEW3D_PT_tools_brush(PaintPanel):
|
||||
|
||||
settings = self.paint_settings(context)
|
||||
brush = settings.brush
|
||||
|
||||
|
||||
if not context.particle_edit_object:
|
||||
layout.split().row().template_ID(settings, "brush")
|
||||
|
||||
col = layout.split().column()
|
||||
row = col.row()
|
||||
row.template_list(settings, "brushes", settings, "active_brush_index", rows=2)
|
||||
|
||||
col.template_ID(settings, "brush", new="brush.add")
|
||||
|
||||
# Particle Mode #
|
||||
|
||||
# XXX This needs a check if psys is editable.
|
||||
@@ -336,27 +308,28 @@ class VIEW3D_PT_tools_brush(PaintPanel):
|
||||
layout.column().itemR(settings, "tool", expand=True)
|
||||
|
||||
if settings.tool != 'NONE':
|
||||
col = layout.column(align=True)
|
||||
col = layout.column()
|
||||
col.itemR(brush, "size", slider=True)
|
||||
col.itemR(brush, "strength", slider=True)
|
||||
|
||||
if settings.tool == 'ADD':
|
||||
layout.itemR(settings, "add_interpolate")
|
||||
|
||||
col = layout.column()
|
||||
col.itemR(brush, "steps", slider=True)
|
||||
col.itemR(settings, "add_keys", slider=True)
|
||||
col.itemR(settings, "add_interpolate")
|
||||
sub = col.column(align=True)
|
||||
sub.active = settings.add_interpolate
|
||||
sub.itemR(brush, "steps", slider=True)
|
||||
sub.itemR(settings, "add_keys", slider=True)
|
||||
elif settings.tool == 'LENGTH':
|
||||
layout.itemR(brush, "length_mode", expand=True)
|
||||
elif settings.tool == 'PUFF':
|
||||
layout.itemR(brush, "puff_mode", expand=True)
|
||||
|
||||
# Sculpt Mode #
|
||||
|
||||
elif context.sculpt_object:
|
||||
layout.column().itemR(brush, "sculpt_tool", expand=True)
|
||||
|
||||
|
||||
elif context.sculpt_object and settings.brush:
|
||||
col = layout.column()
|
||||
col.itemS()
|
||||
|
||||
row = col.row(align=True)
|
||||
row.itemR(brush, "size", slider=True)
|
||||
@@ -378,6 +351,8 @@ class VIEW3D_PT_tools_brush(PaintPanel):
|
||||
if brush.sculpt_tool == 'LAYER':
|
||||
col.itemR(brush, "persistent")
|
||||
col.itemO("sculpt.set_persistent_base")
|
||||
|
||||
col.itemR(brush, "sculpt_tool")
|
||||
|
||||
# Texture Paint Mode #
|
||||
|
||||
@@ -460,6 +435,7 @@ class VIEW3D_PT_tools_brush_curve(PaintPanel):
|
||||
layout = self.layout
|
||||
|
||||
layout.template_curve_mapping(brush.curve)
|
||||
layout.item_menu_enumO("brush.curve_preset", property="shape")
|
||||
|
||||
class VIEW3D_PT_sculpt_options(PaintPanel):
|
||||
__label__ = "Options"
|
||||
@@ -491,12 +467,8 @@ class VIEW3D_PT_sculpt_options(PaintPanel):
|
||||
|
||||
# ********** default tools for weightpaint ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
__context__ = "weight_paint"
|
||||
|
||||
class VIEW3D_PT_weight_paint_options(View3DPanel):
|
||||
class VIEW3D_PT_tools_weightpaint(View3DPanel):
|
||||
__context__ = "weightpaint"
|
||||
__label__ = "Options"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -522,12 +494,8 @@ class VIEW3D_PT_weight_paint_options(View3DPanel):
|
||||
|
||||
# ********** default tools for vertexpaint ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
|
||||
class VIEW3D_PT_vertex_paint_options(View3DPanel):
|
||||
__context__ = "vertex_paint"
|
||||
class VIEW3D_PT_tools_vertexpaint(View3DPanel):
|
||||
__context__ = "vertexpaint"
|
||||
__label__ = "Options"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -550,12 +518,8 @@ class VIEW3D_PT_vertex_paint_options(View3DPanel):
|
||||
|
||||
# ********** default tools for texturepaint ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
__context__ = "texture_paint"
|
||||
|
||||
class VIEW3D_PT_tools_texture_paint(View3DPanel):
|
||||
class VIEW3D_PT_tools_texturepaint(View3DPanel):
|
||||
__context__ = "texturepaint"
|
||||
__label__ = "Options"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -563,32 +527,49 @@ class VIEW3D_PT_tools_texture_paint(View3DPanel):
|
||||
|
||||
ipaint = context.tool_settings.image_paint
|
||||
settings = context.tool_settings.image_paint
|
||||
use_projection= ipaint.use_projection
|
||||
|
||||
col = layout.column()
|
||||
col.itemR(ipaint, "use_projection")
|
||||
sub = col.column()
|
||||
sub.active = ipaint.use_projection
|
||||
sub.active = use_projection
|
||||
sub.itemR(ipaint, "use_occlude")
|
||||
sub.itemR(ipaint, "use_backface_cull")
|
||||
sub.itemR(ipaint, "use_normal_falloff")
|
||||
sub.itemR(ipaint, "use_stencil_layer")
|
||||
subsub = sub.column()
|
||||
subsub.active = ipaint.use_stencil_layer
|
||||
subsub.itemR(ipaint, "invert_stencil")
|
||||
if settings.tool == 'CLONE':
|
||||
sub.itemR(ipaint, "use_clone_layer")
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.active = (use_projection)
|
||||
col.itemR(ipaint, "use_normal_falloff")
|
||||
|
||||
col = split.column()
|
||||
col.active = (ipaint.use_normal_falloff and use_projection)
|
||||
col.itemR(ipaint, "normal_angle", text="")
|
||||
|
||||
|
||||
split = layout.split(percentage=0.7)
|
||||
|
||||
col = split.column(align=False)
|
||||
col.active = (use_projection)
|
||||
col.itemR(ipaint, "use_stencil_layer")
|
||||
|
||||
col = split.column(align=False)
|
||||
col.active = (use_projection and ipaint.use_stencil_layer)
|
||||
col.itemR(ipaint, "invert_stencil", text="Inv")
|
||||
|
||||
|
||||
col = layout.column()
|
||||
sub = col.column()
|
||||
sub.active = (settings.tool == 'CLONE')
|
||||
sub.itemR(ipaint, "use_clone_layer")
|
||||
|
||||
sub = col.column()
|
||||
sub.itemR(ipaint, "seam_bleed")
|
||||
sub.itemR(ipaint, "normal_angle")
|
||||
|
||||
# ********** default tools for particle mode ****************
|
||||
|
||||
class View3DPanel(bpy.types.Panel):
|
||||
__space_type__ = "VIEW_3D"
|
||||
__region_type__ = "TOOLS"
|
||||
__context__ = "particle_mode"
|
||||
|
||||
class VIEW3D_PT_tools_particle_edit(View3DPanel):
|
||||
class VIEW3D_PT_tools_particlemode(View3DPanel):
|
||||
__context__ = "particlemode"
|
||||
__label__ = "Options"
|
||||
|
||||
def draw(self, context):
|
||||
@@ -607,23 +588,23 @@ class VIEW3D_PT_tools_particle_edit(View3DPanel):
|
||||
col.itemR(pe, "keep_root", text="Root")
|
||||
|
||||
col = layout.column(align=True)
|
||||
col.itemL(text="Draw:")
|
||||
col.itemL(text="Display:")
|
||||
col.itemR(pe, "show_time", text="Time")
|
||||
col.itemR(pe, "show_children", text="Children")
|
||||
|
||||
bpy.types.register(VIEW3D_PT_tools_objectmode)
|
||||
bpy.types.register(VIEW3D_PT_tools_editmode_mesh)
|
||||
bpy.types.register(VIEW3D_PT_tools_editmode_curve)
|
||||
bpy.types.register(VIEW3D_PT_tools_editmode_surface)
|
||||
bpy.types.register(VIEW3D_PT_tools_editmode_text)
|
||||
bpy.types.register(VIEW3D_PT_tools_editmode_armature)
|
||||
bpy.types.register(VIEW3D_PT_tools_editmode_mball)
|
||||
bpy.types.register(VIEW3D_PT_tools_editmode_lattice)
|
||||
bpy.types.register(VIEW3D_PT_tools_meshedit)
|
||||
bpy.types.register(VIEW3D_PT_tools_curveedit)
|
||||
bpy.types.register(VIEW3D_PT_tools_surfaceedit)
|
||||
bpy.types.register(VIEW3D_PT_tools_textedit)
|
||||
bpy.types.register(VIEW3D_PT_tools_armatureedit)
|
||||
bpy.types.register(VIEW3D_PT_tools_mballedit)
|
||||
bpy.types.register(VIEW3D_PT_tools_latticeedit)
|
||||
bpy.types.register(VIEW3D_PT_tools_posemode)
|
||||
bpy.types.register(VIEW3D_PT_tools_brush)
|
||||
bpy.types.register(VIEW3D_PT_tools_brush_curve)
|
||||
bpy.types.register(VIEW3D_PT_sculpt_options)
|
||||
bpy.types.register(VIEW3D_PT_vertex_paint_options)
|
||||
bpy.types.register(VIEW3D_PT_weight_paint_options)
|
||||
bpy.types.register(VIEW3D_PT_tools_texture_paint)
|
||||
bpy.types.register(VIEW3D_PT_tools_particle_edit)
|
||||
bpy.types.register(VIEW3D_PT_tools_vertexpaint)
|
||||
bpy.types.register(VIEW3D_PT_tools_weightpaint)
|
||||
bpy.types.register(VIEW3D_PT_tools_texturepaint)
|
||||
bpy.types.register(VIEW3D_PT_tools_particlemode)
|
||||
|
||||
@@ -75,6 +75,7 @@ endif
|
||||
# PLUGAPPLIB libs that form the application to be plugged in
|
||||
# Note: the order is important here
|
||||
|
||||
|
||||
GRPLIB = $(OCGDIR)/creator/$(DEBUG_DIR)libcreator.a
|
||||
GRPLIB += $(OCGDIR)/blender/windowmanager/$(DEBUG_DIR)libwindowmanager.a
|
||||
GRPLIB += $(NAN_BSP)/lib/$(DEBUG_DIR)libbsp.a
|
||||
@@ -108,6 +109,7 @@ COMLIB += $(OCGDIR)/blender/blenfont/$(DEBUG_DIR)libblenfont.a
|
||||
COMLIB += $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)libaudaspace.a
|
||||
COMLIB += $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)libaud_src.a
|
||||
COMLIB += $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)libaud_fx.a
|
||||
COMLIB += $(NAN_SAMPLERATE)/lib/$(DEBUG_DIR)libsamplerate.a
|
||||
|
||||
ifneq ($(NAN_NO_KETSJI),true)
|
||||
COMLIB += $(OCGDIR)/gameengine/bloutines/$(DEBUG_DIR)libbloutines.a
|
||||
|
||||
@@ -27,11 +27,13 @@ FILE(GLOB SRC intern/*.c)
|
||||
SET(INC
|
||||
../../../intern/guardedalloc ../blenlib ../makesdna ../editors/include
|
||||
../blenkernel ../../../extern/glew/include .
|
||||
${FTGL_INC}
|
||||
${FREETYPE_INC}
|
||||
${GETTEXT_INC}
|
||||
${FREETYPE_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
IF(WITH_INTERNATIONAL)
|
||||
SET(INC ${INC} ${GETTEXT_INC})
|
||||
ENDIF(WITH_INTERNATIONAL)
|
||||
|
||||
IF(WIN32)
|
||||
ADD_DEFINITIONS(-D_WIN32 -DUSE_GETTEXT_DLL)
|
||||
ENDIF(WIN32)
|
||||
|
||||
@@ -153,7 +153,8 @@ char *blf_dir_search(char *file)
|
||||
|
||||
int blf_dir_split(const char *str, char *file, int *size)
|
||||
{
|
||||
char *s, i, len;
|
||||
int i, len;
|
||||
char *s;
|
||||
|
||||
/* Window, Linux or Mac, this is always / */
|
||||
s= strrchr(str, '/');
|
||||
|
||||
@@ -66,6 +66,9 @@ void BKE_keyingset_add_destination(struct KeyingSet *ks, struct ID *id, const ch
|
||||
|
||||
struct KS_Path *BKE_keyingset_find_destination(struct KeyingSet *ks, struct ID *id, const char group_name[], const char rna_path[], int array_index, int group_mode);
|
||||
|
||||
/* Copy all KeyingSets in the given list */
|
||||
void BKE_keyingsets_copy(struct ListBase *newlist, struct ListBase *list);
|
||||
|
||||
/* Free data for KeyingSet but not set itself */
|
||||
void BKE_keyingset_free(struct KeyingSet *ks);
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ struct bContext;
|
||||
struct ReportList;
|
||||
|
||||
#define BLENDER_VERSION 250
|
||||
#define BLENDER_SUBVERSION 0
|
||||
#define BLENDER_SUBVERSION 1
|
||||
|
||||
#define BLENDER_MINVERSION 250
|
||||
#define BLENDER_MINSUBVERSION 0
|
||||
|
||||
@@ -38,16 +38,15 @@ struct Scene;
|
||||
struct wmOperator;
|
||||
|
||||
/* datablock functions */
|
||||
struct Brush *add_brush(char *name);
|
||||
struct Brush *add_brush(const char *name);
|
||||
struct Brush *copy_brush(struct Brush *brush);
|
||||
void make_local_brush(struct Brush *brush);
|
||||
void free_brush(struct Brush *brush);
|
||||
|
||||
/* brush library operations used by different paint panels */
|
||||
struct Brush **current_brush_source(struct Scene *sce);
|
||||
int brush_set_nr(struct Brush **current_brush, int nr);
|
||||
int brush_set_nr(struct Brush **current_brush, int nr, const char *name);
|
||||
int brush_delete(struct Brush **current_brush);
|
||||
void brush_check_exists(struct Brush **brush);
|
||||
void brush_check_exists(struct Brush **brush, const char *name);
|
||||
void brush_toggled_fake_user(struct Brush *brush);
|
||||
int brush_texture_set_nr(struct Brush *brush, int nr);
|
||||
int brush_texture_delete(struct Brush *brush);
|
||||
|
||||
@@ -244,10 +244,6 @@ void cloth_update_normals ( ClothVertex *verts, int nVerts, MFace *face, int tot
|
||||
void bvhtree_update_from_cloth ( ClothModifierData *clmd, int moving );
|
||||
void bvhselftree_update_from_cloth ( ClothModifierData *clmd, int moving );
|
||||
|
||||
// needed for editmesh.c
|
||||
void cloth_write_cache( Object *ob, ClothModifierData *clmd, int framenr );
|
||||
int cloth_read_cache( Scene *scene, Object *ob, ClothModifierData *clmd, float framenr, int *old_framenr );
|
||||
|
||||
// needed for button_object.c
|
||||
void cloth_clear_cache ( Object *ob, ClothModifierData *clmd, float framenr );
|
||||
|
||||
|
||||
@@ -86,6 +86,25 @@ typedef struct bContextStore {
|
||||
int used;
|
||||
} bContextStore;
|
||||
|
||||
/* for the conrtext's rna mode enum
|
||||
* keep aligned with data_mode_strings in context.c */
|
||||
enum {
|
||||
CTX_MODE_EDIT_MESH = 0,
|
||||
CTX_MODE_EDIT_CURVE,
|
||||
CTX_MODE_EDIT_SURFACE,
|
||||
CTX_MODE_EDIT_TEXT,
|
||||
CTX_MODE_EDIT_ARMATURE,
|
||||
CTX_MODE_EDIT_METABALL,
|
||||
CTX_MODE_EDIT_LATTICE,
|
||||
CTX_MODE_POSE,
|
||||
CTX_MODE_SCULPT,
|
||||
CTX_MODE_PAINT_WEIGHT,
|
||||
CTX_MODE_PAINT_VERTEX,
|
||||
CTX_MODE_PAINT_TEXTURE,
|
||||
CTX_MODE_PARTICLE,
|
||||
CTX_MODE_OBJECT
|
||||
};
|
||||
|
||||
/* Context */
|
||||
|
||||
bContext *CTX_create(void);
|
||||
@@ -191,6 +210,9 @@ struct Main *CTX_data_main(const bContext *C);
|
||||
struct Scene *CTX_data_scene(const bContext *C);
|
||||
struct ToolSettings *CTX_data_tool_settings(const bContext *C);
|
||||
|
||||
char *CTX_data_mode_string(const bContext *C);
|
||||
int CTX_data_mode_enum(const bContext *C);
|
||||
|
||||
void CTX_data_main_set(bContext *C, struct Main *bmain);
|
||||
void CTX_data_scene_set(bContext *C, struct Scene *bmain);
|
||||
|
||||
|
||||
@@ -112,27 +112,15 @@ typedef struct Global {
|
||||
|
||||
#define G_FACESELECT (1 << 8)
|
||||
|
||||
#define G_VERTEXPAINT (1 << 10)
|
||||
|
||||
#define G_DEBUG (1 << 12)
|
||||
#define G_DOSCRIPTLINKS (1 << 13)
|
||||
|
||||
#define G_WEIGHTPAINT (1 << 15)
|
||||
#define G_TEXTUREPAINT (1 << 16)
|
||||
/* #define G_NOFROZEN (1 << 17) also removed */
|
||||
#define G_GREASEPENCIL (1 << 17)
|
||||
|
||||
#define G_SCULPTMODE (1 << 29)
|
||||
#define G_PARTICLEEDIT (1 << 30)
|
||||
|
||||
/* #define G_AUTOMATKEYS (1 << 30) also removed */
|
||||
#define G_HIDDENHANDLES (1 << 31) /* used for curves only */
|
||||
|
||||
/* macro for testing face select mode
|
||||
* Texture paint could be removed since selected faces are not used
|
||||
* however hiding faces is useful */
|
||||
#define FACESEL_PAINT_TEST ((G.f&G_FACESELECT) && (G.f & (G_VERTEXPAINT|G_WEIGHTPAINT|G_TEXTUREPAINT)))
|
||||
|
||||
/* G.fileflags */
|
||||
|
||||
#define G_AUTOPACK (1 << 0)
|
||||
|
||||
@@ -47,6 +47,7 @@ struct rctf;
|
||||
struct ListBase;
|
||||
struct RenderData;
|
||||
struct Scene;
|
||||
struct Main;
|
||||
struct Tex;
|
||||
struct GPUMaterial;
|
||||
struct GPUNode;
|
||||
@@ -432,4 +433,8 @@ char* ntreeTexOutputMenu(struct bNodeTree *ntree);
|
||||
void init_nodesystem(void);
|
||||
void free_nodesystem(void);
|
||||
|
||||
/**/
|
||||
|
||||
void clear_scene_in_nodes(struct Main *bmain, struct Scene *sce);
|
||||
|
||||
#endif
|
||||
|
||||
51
source/blender/blenkernel/BKE_paint.h
Normal file
51
source/blender/blenkernel/BKE_paint.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* ***** BEGIN GPL LICENSE BLOCK *****
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2009 by Nicholas Bishop
|
||||
* All rights reserved.
|
||||
*
|
||||
* The Original Code is: all of this file.
|
||||
*
|
||||
* Contributor(s): none yet.
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
#ifndef BKE_PAINT_H
|
||||
#define BKE_PAINT_H
|
||||
|
||||
struct Brush;
|
||||
struct Object;
|
||||
struct Paint;
|
||||
struct Scene;
|
||||
|
||||
void paint_init(struct Paint *p, const char *brush_name);
|
||||
void free_paint(struct Paint *p);
|
||||
void copy_paint(struct Paint *orig, struct Paint *new);
|
||||
|
||||
struct Paint *paint_get_active(struct Scene *sce);
|
||||
struct Brush *paint_brush(struct Paint *paint);
|
||||
void paint_brush_set(struct Paint *paint, struct Brush *br);
|
||||
void paint_brush_slot_add(struct Paint *p);
|
||||
void paint_brush_slot_remove(struct Paint *p);
|
||||
|
||||
/* testing face select mode
|
||||
* Texture paint could be removed since selected faces are not used
|
||||
* however hiding faces is useful */
|
||||
int paint_facesel_test(struct Object *ob);
|
||||
|
||||
#endif
|
||||
@@ -30,6 +30,8 @@
|
||||
#define BKE_POINTCACHE_H
|
||||
|
||||
#include "DNA_ID.h"
|
||||
#include "DNA_object_force.h"
|
||||
#include "DNA_boid_types.h"
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
@@ -55,9 +57,11 @@
|
||||
#define PTCACHE_FILE_WRITE 1
|
||||
|
||||
/* PTCacheID types */
|
||||
#define PTCACHE_TYPE_SOFTBODY 0
|
||||
#define PTCACHE_TYPE_PARTICLES 1
|
||||
#define PTCACHE_TYPE_CLOTH 2
|
||||
#define PTCACHE_TYPE_SOFTBODY 0
|
||||
#define PTCACHE_TYPE_PARTICLES 1
|
||||
#define PTCACHE_TYPE_CLOTH 2
|
||||
#define PTCACHE_TYPE_SMOKE_DOMAIN_LOW 3
|
||||
#define PTCACHE_TYPE_SMOKE_DOMAIN_HIGH 4
|
||||
|
||||
/* PTCache read return code */
|
||||
#define PTCACHE_READ_EXACT 1
|
||||
@@ -69,47 +73,71 @@ struct Object;
|
||||
struct Scene;
|
||||
struct SoftBody;
|
||||
struct ParticleSystem;
|
||||
struct ParticleKey;
|
||||
struct ClothModifierData;
|
||||
struct SmokeModifierData;
|
||||
struct PointCache;
|
||||
struct ListBase;
|
||||
|
||||
/* temp structure for read/write */
|
||||
typedef struct PTCacheData {
|
||||
int index;
|
||||
float loc[3];
|
||||
float vel[3];
|
||||
float rot[4];
|
||||
float ave[3];
|
||||
float size;
|
||||
float times[3];
|
||||
struct BoidData boids;
|
||||
} PTCacheData;
|
||||
|
||||
typedef struct PTCacheFile {
|
||||
FILE *fp;
|
||||
|
||||
int totpoint, type;
|
||||
unsigned int data_types;
|
||||
|
||||
struct PTCacheData data;
|
||||
void *cur[BPHYS_TOT_DATA];
|
||||
} PTCacheFile;
|
||||
|
||||
typedef struct PTCacheID {
|
||||
struct PTCacheID *next, *prev;
|
||||
|
||||
struct Scene *scene;
|
||||
struct Object *ob;
|
||||
void *data;
|
||||
void *calldata;
|
||||
int type;
|
||||
int stack_index;
|
||||
|
||||
/* flags defined in DNA_object_force.h */
|
||||
unsigned int data_types, info_types;
|
||||
|
||||
/* copies point data to cache data */
|
||||
int (*write_elem)(int index, void *calldata, void **data);
|
||||
/* copies point data to cache data */
|
||||
int (*write_stream)(PTCacheFile *pf, void *calldata);
|
||||
/* copies cache cata to point data */
|
||||
void (*read_elem)(int index, void *calldata, void **data, float frs_sec, float cfra, float *old_data);
|
||||
/* copies cache cata to point data */
|
||||
void (*read_stream)(PTCacheFile *pf, void *calldata);
|
||||
/* interpolated between previously read point data and cache data */
|
||||
void (*interpolate_elem)(int index, void *calldata, void **data, float frs_sec, float cfra, float cfra1, float cfra2, float *old_data);
|
||||
|
||||
/* total number of simulated points */
|
||||
int (*totpoint)(void *calldata);
|
||||
/* number of points written for current cache frame (currently not used) */
|
||||
int (*totwrite)(void *calldata);
|
||||
|
||||
int (*write_header)(PTCacheFile *pf);
|
||||
int (*read_header)(PTCacheFile *pf);
|
||||
|
||||
struct PointCache *cache;
|
||||
/* used for setting the current cache from ptcaches list */
|
||||
struct PointCache **cache_ptr;
|
||||
struct ListBase *ptcaches;
|
||||
} PTCacheID;
|
||||
|
||||
typedef struct PTCacheWriter {
|
||||
struct PTCacheID *pid;
|
||||
int cfra;
|
||||
int totelem;
|
||||
|
||||
void (*set_elem)(int index, void *calldata, float *data);
|
||||
void *calldata;
|
||||
} PTCacheWriter;
|
||||
|
||||
typedef struct PTCacheReader {
|
||||
struct Scene *scene;
|
||||
struct PTCacheID *pid;
|
||||
float cfra;
|
||||
int totelem;
|
||||
|
||||
void (*set_elem)(int elem_index, void *calldata, float *data);
|
||||
void (*interpolate_elem)(int index, void *calldata, float frs_sec, float cfra, float cfra1, float cfra2, float *data1, float *data2);
|
||||
void *calldata;
|
||||
|
||||
int *old_frame;
|
||||
} PTCacheReader;
|
||||
|
||||
typedef struct PTCacheBaker {
|
||||
struct Scene *scene;
|
||||
int bake;
|
||||
@@ -123,49 +151,75 @@ typedef struct PTCacheBaker {
|
||||
void *progresscontext;
|
||||
} PTCacheBaker;
|
||||
|
||||
/* Creating ID's */
|
||||
/* Particle functions */
|
||||
void BKE_ptcache_make_particle_key(struct ParticleKey *key, int index, void **data, float time);
|
||||
|
||||
/**************** Creating ID's ****************************/
|
||||
void BKE_ptcache_id_from_softbody(PTCacheID *pid, struct Object *ob, struct SoftBody *sb);
|
||||
void BKE_ptcache_id_from_particles(PTCacheID *pid, struct Object *ob, struct ParticleSystem *psys);
|
||||
void BKE_ptcache_id_from_cloth(PTCacheID *pid, struct Object *ob, struct ClothModifierData *clmd);
|
||||
void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct SmokeModifierData *smd, int num);
|
||||
|
||||
void BKE_ptcache_ids_from_object(struct ListBase *lb, struct Object *ob);
|
||||
|
||||
/* Global funcs */
|
||||
/***************** Global funcs ****************************/
|
||||
void BKE_ptcache_remove(void);
|
||||
|
||||
/* ID specific functions */
|
||||
/************ ID specific functions ************************/
|
||||
void BKE_ptcache_id_clear(PTCacheID *id, int mode, int cfra);
|
||||
int BKE_ptcache_id_exist(PTCacheID *id, int cfra);
|
||||
int BKE_ptcache_id_reset(struct Scene *scene, PTCacheID *id, int mode);
|
||||
void BKE_ptcache_id_time(PTCacheID *pid, struct Scene *scene, float cfra, int *startframe, int *endframe, float *timescale);
|
||||
int BKE_ptcache_object_reset(struct Scene *scene, struct Object *ob, int mode);
|
||||
|
||||
/* File reading/writing */
|
||||
PTCacheFile *BKE_ptcache_file_open(PTCacheID *id, int mode, int cfra);
|
||||
void BKE_ptcache_file_close(PTCacheFile *pf);
|
||||
int BKE_ptcache_file_read_floats(PTCacheFile *pf, float *f, int tot);
|
||||
int BKE_ptcache_file_write_floats(PTCacheFile *pf, float *f, int tot);
|
||||
|
||||
void BKE_ptcache_update_info(PTCacheID *pid);
|
||||
|
||||
/* General cache reading/writing */
|
||||
int BKE_ptcache_read_cache(PTCacheReader *reader);
|
||||
int BKE_ptcache_write_cache(PTCacheWriter *writer);
|
||||
/*********** General cache reading/writing ******************/
|
||||
|
||||
/* Continue physics */
|
||||
/* Size of cache data type. */
|
||||
int BKE_ptcache_data_size(int data_type);
|
||||
|
||||
/* Copy a specific data type from cache data to point data. */
|
||||
void BKE_ptcache_data_get(void **data, int type, int index, void *to);
|
||||
|
||||
/* Copy a specific data type from point data to cache data. */
|
||||
void BKE_ptcache_data_set(void **data, int type, void *from);
|
||||
|
||||
/* Main cache reading call. */
|
||||
int BKE_ptcache_read_cache(PTCacheID *pid, float cfra, float frs_sec);
|
||||
|
||||
/* Main cache writing call. */
|
||||
int BKE_ptcache_write_cache(PTCacheID *pid, int cfra);
|
||||
|
||||
/****************** Continue physics ***************/
|
||||
void BKE_ptcache_set_continue_physics(struct Scene *scene, int enable);
|
||||
int BKE_ptcache_get_continue_physics(void);
|
||||
|
||||
/* Point Cache */
|
||||
struct PointCache *BKE_ptcache_add(void);
|
||||
/******************* Allocate & free ***************/
|
||||
struct PointCache *BKE_ptcache_add(struct ListBase *ptcaches);
|
||||
void BKE_ptache_free_mem(struct PointCache *cache);
|
||||
void BKE_ptcache_free(struct PointCache *cache);
|
||||
struct PointCache *BKE_ptcache_copy(struct PointCache *cache);
|
||||
void BKE_ptcache_free_list(struct ListBase *ptcaches);
|
||||
struct PointCache *BKE_ptcache_copy_list(struct ListBase *ptcaches_new, struct ListBase *ptcaches_old);
|
||||
|
||||
/* Baking */
|
||||
/********************** Baking *********************/
|
||||
|
||||
/* Bakes cache with cache_step sized jumps in time, not accurate but very fast. */
|
||||
void BKE_ptcache_quick_cache_all(struct Scene *scene);
|
||||
|
||||
/* Bake cache or simulate to current frame with settings defined in the baker. */
|
||||
void BKE_ptcache_make_cache(struct PTCacheBaker* baker);
|
||||
|
||||
/* Convert disk cache to memory cache. */
|
||||
void BKE_ptcache_disk_to_mem(struct PTCacheID *pid);
|
||||
|
||||
/* Convert memory cache to disk cache. */
|
||||
void BKE_ptcache_mem_to_disk(struct PTCacheID *pid);
|
||||
|
||||
/* Convert disk cache to memory cache and vice versa. Clears the cache that was converted. */
|
||||
void BKE_ptcache_toggle_disk_cache(struct PTCacheID *pid);
|
||||
|
||||
/* Loads simulation from external (disk) cache files. */
|
||||
void BKE_ptcache_load_external(struct PTCacheID *pid);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -40,6 +40,12 @@ struct AviCodecData;
|
||||
struct QuicktimeCodecData;
|
||||
struct RenderData;
|
||||
struct Text;
|
||||
struct Main;
|
||||
|
||||
#define SCE_COPY_EMPTY 0
|
||||
#define SCE_COPY_LINK_OB 1
|
||||
#define SCE_COPY_LINK_DATA 2
|
||||
#define SCE_COPY_FULL 3
|
||||
|
||||
/* note; doesn't work when scene is empty */
|
||||
#define SETLOOPER(s, b) sce= s, b= (Base*)sce->base.first; b; b= (Base*)(b->next?b->next:sce->set?(sce=sce->set)->base.first:NULL)
|
||||
@@ -48,13 +54,16 @@ struct Text;
|
||||
void free_avicodecdata(struct AviCodecData *acd);
|
||||
void free_qtcodecdata(struct QuicktimeCodecData *acd);
|
||||
|
||||
void free_scene(struct Scene *me);
|
||||
void free_scene(struct Scene *sce);
|
||||
struct Scene *add_scene(char *name);
|
||||
struct Base *object_in_scene(struct Object *ob, struct Scene *sce);
|
||||
|
||||
void set_scene_bg(struct Scene *sce);
|
||||
void set_scene_name(char *name);
|
||||
|
||||
struct Scene *copy_scene(struct Main *bmain, struct Scene *sce, int type);
|
||||
void unlink_scene(struct Main *bmain, struct Scene *sce, struct Scene *newsce);
|
||||
|
||||
int next_object(struct Scene *scene, int val, struct Base **base, struct Object **ob);
|
||||
struct Object *scene_find_camera(struct Scene *sc);
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
struct MFace;
|
||||
struct MultireModifierData;
|
||||
struct MVert;
|
||||
struct Sculpt;
|
||||
struct Object;
|
||||
struct StrokeCache;
|
||||
|
||||
typedef struct SculptSession {
|
||||
@@ -63,13 +63,10 @@ typedef struct SculptSession {
|
||||
float (*mesh_co_orig)[3]; /* Copy of the mesh vertices' locations */
|
||||
float *layer_disps; /* Displacements for each vertex */
|
||||
|
||||
void *cursor; /* wm handle */
|
||||
|
||||
struct SculptStroke *stroke;
|
||||
|
||||
struct StrokeCache *cache;
|
||||
} SculptSession;
|
||||
|
||||
void sculptsession_free(struct Sculpt *sculpt);
|
||||
void free_sculptsession(SculptSession **);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -184,3 +184,7 @@ int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test);
|
||||
void free_imbuf_seq(struct ListBase * seqbasep, int check_mem_usage);
|
||||
|
||||
void seq_update_sound(struct Sequence *seq);
|
||||
|
||||
void clear_scene_in_allseqs(struct Scene *sce);
|
||||
|
||||
|
||||
|
||||
@@ -68,8 +68,5 @@ extern void sbObjectToSoftbody(struct Object *ob);
|
||||
/* pass NULL to unlink again */
|
||||
extern void sbSetInterruptCallBack(int (*f)(void));
|
||||
|
||||
/* writing to cache for bake editing */
|
||||
extern void softbody_write_cache(struct Object *ob, struct SoftBody *soft, int cfra);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -39,8 +39,6 @@ struct Main;
|
||||
|
||||
void sound_init();
|
||||
|
||||
void sound_reinit(struct bContext *C);
|
||||
|
||||
void sound_exit();
|
||||
|
||||
struct bSound* sound_new_file(struct Main *main, char* filename);
|
||||
|
||||
68
source/blender/blenkernel/BKE_unit.h
Normal file
68
source/blender/blenkernel/BKE_unit.h
Normal file
@@ -0,0 +1,68 @@
|
||||
/**
|
||||
*
|
||||
* ***** BEGIN GPL LICENSE BLOCK *****
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Contributor(s): Campbell Barton
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
#ifndef BKE_UNIT_H
|
||||
#define BKE_UNIT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* in all cases the value is assumed to be scaled by the user preference */
|
||||
|
||||
/* humanly readable representation of a value in units (used for button drawing) */
|
||||
void bUnit_AsString(char *str, int len_max, double value, int prec, int system, int type, int split, int pad);
|
||||
|
||||
/* replace units with values, used before python button evaluation */
|
||||
int bUnit_ReplaceString(char *str, int len_max, char *str_prev, double scale_pref, int system, int type);
|
||||
|
||||
/* the size of the unit used for this value (used for calculating the ckickstep) */
|
||||
double bUnit_ClosestScalar(double value, int system, int type);
|
||||
|
||||
/* base scale for these units */
|
||||
double bUnit_BaseScalar(int system, int type);
|
||||
|
||||
/* loop over scales, coudl add names later */
|
||||
//double bUnit_Iter(void **unit, char **name, int system, int type);
|
||||
|
||||
void bUnit_GetSystem(void **usys_pt, int *len, int system, int type);
|
||||
char* bUnit_GetName(void *usys_pt, int index);
|
||||
char* bUnit_GetNameDisplay(void *usys_pt, int index);
|
||||
double bUnit_GetScaler(void *usys_pt, int index);
|
||||
|
||||
/* aligned with PropertyUnit */
|
||||
#define B_UNIT_NONE 0
|
||||
#define B_UNIT_LENGTH 1
|
||||
#define B_UNIT_AREA 2
|
||||
#define B_UNIT_VOLUME 3
|
||||
#define B_UNIT_MASS 4
|
||||
#define B_UNIT_ROTATION 5
|
||||
#define B_UNIT_TIME 6
|
||||
#define B_UNIT_VELOCITY 7
|
||||
#define B_UNIT_ACCELERATION 8
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* BKE_UNIT_H */
|
||||
@@ -62,11 +62,6 @@
|
||||
#define SHIFT3(type, a, b, c) { type tmp; tmp = a; a = c; c = b; b = tmp; }
|
||||
#define SHIFT4(type, a, b, c, d) { type tmp; tmp = a; a = d; d = c; c = b; b = tmp; }
|
||||
|
||||
/* string compare */
|
||||
#define STREQ(str, a) ( strcmp((str), (a))==0 )
|
||||
#define STREQ2(str, a, b) ( STREQ(str, a) || STREQ(str, b) )
|
||||
#define STREQ3(str, a, b, c) ( STREQ2(str, a, b) || STREQ(str, c) )
|
||||
|
||||
/* min/max */
|
||||
#define MIN2(x,y) ( (x)<(y) ? (x) : (y) )
|
||||
#define MIN3(x,y,z) MIN2( MIN2((x),(y)) , (z) )
|
||||
@@ -100,8 +95,6 @@
|
||||
if( (max)[0]<(vec)[0] ) (max)[0]= (vec)[0]; \
|
||||
if( (max)[1]<(vec)[1] ) (max)[1]= (vec)[1]; }
|
||||
|
||||
#define MINSIZE(val, size) ( ((val)>=0.0) ? (((val)<(size)) ? (size): (val)) : ( ((val)>(-size)) ? (-size) : (val)))
|
||||
|
||||
/* some math and copy defines */
|
||||
|
||||
#define SWAP(type, a, b) { type sw_ap; sw_ap=(a); (a)=(b); (b)=sw_ap; }
|
||||
|
||||
@@ -55,12 +55,6 @@ IF(WITH_QUICKTIME)
|
||||
ADD_DEFINITIONS(-DWITH_QUICKTIME)
|
||||
ENDIF(WITH_QUICKTIME)
|
||||
|
||||
IF(WITH_SDL)
|
||||
SET(INC ${INC} ${SDL_INC})
|
||||
ELSE(WITH_SDL)
|
||||
ADD_DEFINITIONS(-DDISABLE_SDL)
|
||||
ENDIF(WITH_SDL)
|
||||
|
||||
IF(WITH_FFMPEG)
|
||||
SET(INC ${INC} ${FFMPEG_INC})
|
||||
ADD_DEFINITIONS(-DWITH_FFMPEG)
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_mesh.h"
|
||||
#include "BKE_object.h"
|
||||
#include "BKE_paint.h"
|
||||
#include "BKE_subsurf.h"
|
||||
#include "BKE_texture.h"
|
||||
#include "BKE_utildefines.h"
|
||||
@@ -2076,7 +2077,7 @@ static void clear_mesh_caches(Object *ob)
|
||||
static void mesh_build_data(Scene *scene, Object *ob, CustomDataMask dataMask)
|
||||
{
|
||||
Object *obact = scene->basact?scene->basact->object:NULL;
|
||||
int editing = (FACESEL_PAINT_TEST)|(G.f & G_PARTICLEEDIT);
|
||||
int editing = paint_facesel_test(ob)|(ob && ob->mode & OB_MODE_PARTICLE_EDIT);
|
||||
int needMapping = editing && (ob==obact);
|
||||
float min[3], max[3];
|
||||
|
||||
|
||||
@@ -342,6 +342,21 @@ void BKE_keyingset_add_destination (KeyingSet *ks, ID *id, const char group_name
|
||||
BLI_addtail(&ks->paths, ksp);
|
||||
}
|
||||
|
||||
/* Copy all KeyingSets in the given list */
|
||||
void BKE_keyingsets_copy(ListBase *newlist, ListBase *list)
|
||||
{
|
||||
KeyingSet *ksn;
|
||||
KS_Path *kspn;
|
||||
|
||||
BLI_duplicatelist(newlist, list);
|
||||
|
||||
for(ksn=newlist->first; ksn; ksn=ksn->next) {
|
||||
BLI_duplicatelist(&ksn->paths, &ksn->paths);
|
||||
|
||||
for(kspn=ksn->paths.first; kspn; kspn=kspn->next)
|
||||
kspn->rna_path= MEM_dupallocN(kspn->rna_path);
|
||||
}
|
||||
}
|
||||
|
||||
/* Freeing Tools --------------------------- */
|
||||
|
||||
|
||||
@@ -226,7 +226,7 @@ static void clear_global(void)
|
||||
|
||||
G.main= NULL;
|
||||
|
||||
G.f &= ~(G_WEIGHTPAINT + G_VERTEXPAINT + G_FACESELECT + G_PARTICLEEDIT);
|
||||
G.f &= ~(G_FACESELECT);
|
||||
}
|
||||
|
||||
/* make sure path names are correct for OS */
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "DNA_brush_types.h"
|
||||
#include "DNA_color_types.h"
|
||||
#include "DNA_image_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
#include "DNA_texture_types.h"
|
||||
#include "DNA_scene_types.h"
|
||||
#include "DNA_windowmanager_types.h"
|
||||
@@ -50,6 +51,7 @@
|
||||
#include "BKE_image.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_paint.h"
|
||||
#include "BKE_texture.h"
|
||||
#include "BKE_utildefines.h"
|
||||
|
||||
@@ -61,7 +63,7 @@
|
||||
|
||||
/* Datablock add/copy/free/make_local */
|
||||
|
||||
Brush *add_brush(char *name)
|
||||
Brush *add_brush(const char *name)
|
||||
{
|
||||
Brush *brush;
|
||||
|
||||
@@ -152,7 +154,7 @@ void make_local_brush(Brush *brush)
|
||||
}
|
||||
|
||||
for(scene= G.main->scene.first; scene; scene=scene->id.next)
|
||||
if(scene->toolsettings->imapaint.brush==brush) {
|
||||
if(paint_brush(&scene->toolsettings->imapaint.paint)==brush) {
|
||||
if(scene->id.lib) lib= 1;
|
||||
else local= 1;
|
||||
}
|
||||
@@ -174,9 +176,9 @@ void make_local_brush(Brush *brush)
|
||||
brushn->id.flag |= LIB_FAKEUSER;
|
||||
|
||||
for(scene= G.main->scene.first; scene; scene=scene->id.next)
|
||||
if(scene->toolsettings->imapaint.brush==brush)
|
||||
if(paint_brush(&scene->toolsettings->imapaint.paint)==brush)
|
||||
if(scene->id.lib==0) {
|
||||
scene->toolsettings->imapaint.brush= brushn;
|
||||
paint_brush_set(&scene->toolsettings->imapaint.paint, brushn);
|
||||
brushn->id.us++;
|
||||
brush->id.us--;
|
||||
}
|
||||
@@ -185,20 +187,7 @@ void make_local_brush(Brush *brush)
|
||||
|
||||
/* Library Operations */
|
||||
|
||||
Brush **current_brush_source(Scene *sce)
|
||||
{
|
||||
if(G.f & G_SCULPTMODE)
|
||||
return &sce->toolsettings->sculpt->brush;
|
||||
else if(G.f & G_VERTEXPAINT)
|
||||
return &sce->toolsettings->vpaint->brush;
|
||||
else if(G.f & G_WEIGHTPAINT)
|
||||
return &sce->toolsettings->wpaint->brush;
|
||||
else if(G.f & G_TEXTUREPAINT)
|
||||
return &sce->toolsettings->imapaint.brush;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int brush_set_nr(Brush **current_brush, int nr)
|
||||
int brush_set_nr(Brush **current_brush, int nr, const char *name)
|
||||
{
|
||||
ID *idtest, *id;
|
||||
|
||||
@@ -207,7 +196,7 @@ int brush_set_nr(Brush **current_brush, int nr)
|
||||
|
||||
if(idtest==0) { /* new brush */
|
||||
if(id) idtest= (ID *)copy_brush((Brush *)id);
|
||||
else idtest= (ID *)add_brush("Brush");
|
||||
else idtest= (ID *)add_brush(name);
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id) {
|
||||
@@ -300,6 +289,13 @@ void brush_curve_preset(Brush *b, BrushCurvePreset preset)
|
||||
curvemapping_changed(b->curve, 0);
|
||||
}
|
||||
|
||||
static MTex *brush_active_texture(Brush *brush)
|
||||
{
|
||||
if(brush && brush->texact >= 0)
|
||||
return brush->mtex[brush->texact];
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int brush_texture_set_nr(Brush *brush, int nr)
|
||||
{
|
||||
ID *idtest, *id=NULL;
|
||||
@@ -374,10 +370,10 @@ int brush_clone_image_delete(Brush *brush)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void brush_check_exists(Brush **brush)
|
||||
void brush_check_exists(Brush **brush, const char *name)
|
||||
{
|
||||
if(*brush==NULL)
|
||||
brush_set_nr(brush, 1);
|
||||
brush_set_nr(brush, 1, name);
|
||||
}
|
||||
|
||||
/* Brush Sampling */
|
||||
@@ -1077,8 +1073,11 @@ void brush_radial_control_invoke(wmOperator *op, Brush *br, float size_weight)
|
||||
original_value = br->size * size_weight;
|
||||
else if(mode == WM_RADIALCONTROL_STRENGTH)
|
||||
original_value = br->alpha;
|
||||
else if(mode == WM_RADIALCONTROL_ANGLE)
|
||||
original_value = br->rot;
|
||||
else if(mode == WM_RADIALCONTROL_ANGLE) {
|
||||
MTex *mtex = brush_active_texture(br);
|
||||
if(mtex)
|
||||
original_value = mtex->rot;
|
||||
}
|
||||
|
||||
RNA_float_set(op->ptr, "initial_value", original_value);
|
||||
op->customdata = brush_gen_radial_control_imbuf(br);
|
||||
@@ -1094,8 +1093,11 @@ int brush_radial_control_exec(wmOperator *op, Brush *br, float size_weight)
|
||||
br->size = new_value * size_weight;
|
||||
else if(mode == WM_RADIALCONTROL_STRENGTH)
|
||||
br->alpha = new_value;
|
||||
else if(mode == WM_RADIALCONTROL_ANGLE)
|
||||
br->rot = new_value * conv;
|
||||
else if(mode == WM_RADIALCONTROL_ANGLE) {
|
||||
MTex *mtex = brush_active_texture(br);
|
||||
if(mtex)
|
||||
mtex->rot = new_value * conv;
|
||||
}
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
@@ -340,92 +340,6 @@ void bvhselftree_update_from_cloth(ClothModifierData *clmd, int moving)
|
||||
}
|
||||
}
|
||||
|
||||
int modifiers_indexInObject(Object *ob, ModifierData *md_seek);
|
||||
static void cloth_write_state(int index, void *cloth_v, float *data)
|
||||
{
|
||||
Cloth *cloth= cloth_v;
|
||||
ClothVertex *vert = cloth->verts + index;
|
||||
|
||||
memcpy(data, vert->x, 3 * sizeof(float));
|
||||
memcpy(data + 3, vert->xconst, 3 * sizeof(float));
|
||||
memcpy(data + 6, vert->v, 3 * sizeof(float));
|
||||
}
|
||||
static void cloth_read_state(int index, void *cloth_v, float *data)
|
||||
{
|
||||
Cloth *cloth= cloth_v;
|
||||
ClothVertex *vert = cloth->verts + index;
|
||||
|
||||
memcpy(vert->x, data, 3 * sizeof(float));
|
||||
memcpy(vert->xconst, data + 3, 3 * sizeof(float));
|
||||
memcpy(vert->v, data + 6, 3 * sizeof(float));
|
||||
}
|
||||
static void cloth_cache_interpolate(int index, void *cloth_v, float frs_sec, float cfra, float cfra1, float cfra2, float *data1, float *data2)
|
||||
{
|
||||
Cloth *cloth= cloth_v;
|
||||
ClothVertex *vert = cloth->verts + index;
|
||||
ParticleKey keys[4];
|
||||
float dfra;
|
||||
|
||||
if(cfra1 == cfra2) {
|
||||
cloth_read_state(index, cloth, data1);
|
||||
return;
|
||||
}
|
||||
|
||||
memcpy(keys[1].co, data1, 3 * sizeof(float));
|
||||
memcpy(keys[1].vel, data1 + 6, 3 * sizeof(float));
|
||||
|
||||
memcpy(keys[2].co, data2, 3 * sizeof(float));
|
||||
memcpy(keys[2].vel, data2 + 6, 3 * sizeof(float));
|
||||
|
||||
dfra = cfra2 - cfra1;
|
||||
|
||||
VecMulf(keys[1].vel, dfra);
|
||||
VecMulf(keys[2].vel, dfra);
|
||||
|
||||
psys_interpolate_particle(-1, keys, (cfra - cfra1) / dfra, keys, 1);
|
||||
|
||||
VecMulf(keys->vel, 1.0f / dfra);
|
||||
|
||||
memcpy(vert->x, keys->co, 3 * sizeof(float));
|
||||
memcpy(vert->v, keys->vel, 3 * sizeof(float));
|
||||
|
||||
/* not sure what to do with this - jahka */
|
||||
memcpy(vert->xconst, data1 + 3, 3 * sizeof(float));
|
||||
}
|
||||
void cloth_write_cache(Object *ob, ClothModifierData *clmd, int cfra)
|
||||
{
|
||||
PTCacheWriter writer;
|
||||
PTCacheID pid;
|
||||
|
||||
BKE_ptcache_id_from_cloth(&pid, ob, clmd);
|
||||
|
||||
writer.calldata = clmd->clothObject;
|
||||
writer.cfra = cfra;
|
||||
writer.set_elem = cloth_write_state;
|
||||
writer.pid = &pid;
|
||||
writer.totelem = clmd->clothObject->numverts;
|
||||
|
||||
BKE_ptcache_write_cache(&writer);
|
||||
}
|
||||
|
||||
int cloth_read_cache(Scene *scene, Object *ob, ClothModifierData *clmd, float cfra, int *old_framenr)
|
||||
{
|
||||
PTCacheReader reader;
|
||||
PTCacheID pid;
|
||||
|
||||
BKE_ptcache_id_from_cloth(&pid, ob, clmd);
|
||||
|
||||
reader.calldata = clmd->clothObject;
|
||||
reader.cfra = cfra;
|
||||
reader.interpolate_elem = cloth_cache_interpolate;
|
||||
reader.old_frame = old_framenr;
|
||||
reader.pid = &pid;
|
||||
reader.scene = scene;
|
||||
reader.set_elem = cloth_read_state;
|
||||
reader.totelem = clmd->clothObject->numverts;
|
||||
|
||||
return BKE_ptcache_read_cache(&reader);
|
||||
}
|
||||
void cloth_clear_cache(Object *ob, ClothModifierData *clmd, float framenr)
|
||||
{
|
||||
PTCacheID pid;
|
||||
@@ -512,7 +426,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
|
||||
PTCacheID pid;
|
||||
float timescale;
|
||||
int framedelta, framenr, startframe, endframe;
|
||||
int cache_result, old_framenr;
|
||||
int cache_result;
|
||||
|
||||
clmd->scene= scene; /* nice to pass on later :) */
|
||||
framenr= (int)scene->r.cfra;
|
||||
@@ -583,7 +497,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
|
||||
return result;
|
||||
|
||||
/* try to read from cache */
|
||||
cache_result = cloth_read_cache(scene, ob, clmd, framenr, &old_framenr);
|
||||
cache_result = BKE_ptcache_read_cache(&pid, (float)framenr, scene->r.frs_sec);
|
||||
|
||||
if(cache_result == PTCACHE_READ_EXACT || cache_result == PTCACHE_READ_INTERPOLATED) {
|
||||
cache->flag |= PTCACHE_SIMULATION_VALID;
|
||||
@@ -600,7 +514,6 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
|
||||
implicit_set_positions(clmd);
|
||||
|
||||
cache->flag |= PTCACHE_SIMULATION_VALID;
|
||||
cache->simframe= old_framenr;
|
||||
}
|
||||
else if(ob->id.lib || (cache->flag & PTCACHE_BAKED)) {
|
||||
/* if baked and nothing in cache, do nothing */
|
||||
@@ -624,7 +537,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
|
||||
else {
|
||||
/* if on second frame, write cache for first frame */
|
||||
if(cache->simframe == startframe && (cache->flag & PTCACHE_OUTDATED || cache->last_exact==0))
|
||||
cloth_write_cache(ob, clmd, startframe);
|
||||
BKE_ptcache_write_cache(&pid, startframe);
|
||||
|
||||
clmd->sim_parms->timescale *= framenr - cache->simframe;
|
||||
|
||||
@@ -638,7 +551,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
|
||||
cache->last_exact= 0;
|
||||
}
|
||||
else
|
||||
cloth_write_cache(ob, clmd, framenr);
|
||||
BKE_ptcache_write_cache(&pid, framenr);
|
||||
|
||||
cloth_to_object (ob, clmd, result);
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "DNA_space_types.h"
|
||||
#include "DNA_view3d_types.h"
|
||||
#include "DNA_windowmanager_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
|
||||
#include "RNA_access.h"
|
||||
|
||||
@@ -43,6 +44,7 @@
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_screen.h"
|
||||
#include "BKE_global.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
@@ -217,7 +219,10 @@ struct ARegion *CTX_wm_menu(const bContext *C)
|
||||
|
||||
struct ReportList *CTX_wm_reports(const bContext *C)
|
||||
{
|
||||
return &(C->wm.manager->reports);
|
||||
if (C->wm.manager)
|
||||
return &(C->wm.manager->reports);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
View3D *CTX_wm_view3d(const bContext *C)
|
||||
@@ -656,6 +661,69 @@ Scene *CTX_data_scene(const bContext *C)
|
||||
return C->data.scene;
|
||||
}
|
||||
|
||||
int CTX_data_mode_enum(const bContext *C)
|
||||
{
|
||||
Object *obedit= CTX_data_edit_object(C);
|
||||
|
||||
if(obedit) {
|
||||
switch(obedit->type) {
|
||||
case OB_MESH:
|
||||
return CTX_MODE_EDIT_MESH;
|
||||
case OB_CURVE:
|
||||
return CTX_MODE_EDIT_CURVE;
|
||||
case OB_SURF:
|
||||
return CTX_MODE_EDIT_SURFACE;
|
||||
case OB_FONT:
|
||||
return CTX_MODE_EDIT_TEXT;
|
||||
case OB_ARMATURE:
|
||||
return CTX_MODE_EDIT_ARMATURE;
|
||||
case OB_MBALL:
|
||||
return CTX_MODE_EDIT_METABALL;
|
||||
case OB_LATTICE:
|
||||
return CTX_MODE_EDIT_LATTICE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
|
||||
if(ob) {
|
||||
if(ob->mode & OB_MODE_POSE) return CTX_MODE_POSE;
|
||||
else if(ob->mode & OB_MODE_SCULPT) return CTX_MODE_SCULPT;
|
||||
else if(ob->mode & OB_MODE_WEIGHT_PAINT) return CTX_MODE_PAINT_WEIGHT;
|
||||
else if(ob->mode & OB_MODE_VERTEX_PAINT) return CTX_MODE_PAINT_VERTEX;
|
||||
else if(ob->mode & OB_MODE_TEXTURE_PAINT) return CTX_MODE_PAINT_TEXTURE;
|
||||
else if(ob->mode & OB_MODE_PARTICLE_EDIT) return CTX_MODE_PARTICLE;
|
||||
}
|
||||
}
|
||||
|
||||
return CTX_MODE_OBJECT;
|
||||
}
|
||||
|
||||
|
||||
/* would prefer if we can use the enum version below over this one - Campbell */
|
||||
/* must be aligned with above enum */
|
||||
static char *data_mode_strings[] = {
|
||||
"mesh_edit",
|
||||
"curve_edit",
|
||||
"surface_edit",
|
||||
"text_edit",
|
||||
"armature_edit",
|
||||
"mball_edit",
|
||||
"lattice_edit",
|
||||
"posemode",
|
||||
"sculpt_mode",
|
||||
"weightpaint",
|
||||
"vertexpaint",
|
||||
"texturepaint",
|
||||
"particlemode",
|
||||
"objectmode",
|
||||
0
|
||||
};
|
||||
char *CTX_data_mode_string(const bContext *C)
|
||||
{
|
||||
return data_mode_strings[CTX_data_mode_enum(C)];
|
||||
}
|
||||
|
||||
void CTX_data_scene_set(bContext *C, Scene *scene)
|
||||
{
|
||||
C->data.scene= scene;
|
||||
|
||||
@@ -160,7 +160,7 @@ static AdrBit2Path ma_mode_bits[]= {
|
||||
// {MA_SHADOW, "shadow", 0},
|
||||
// {MA_SHLESS, "shadeless", 0},
|
||||
// ...
|
||||
{MA_RAYTRANSP, "raytrace_transparency.enabled", 0},
|
||||
{MA_RAYTRANSP, "transparency", 0},
|
||||
{MA_RAYMIRROR, "raytrace_mirror.enabled", 0},
|
||||
// {MA_HALO, "type", MA_TYPE_HALO}
|
||||
};
|
||||
|
||||
@@ -170,7 +170,7 @@ void init_material(Material *ma)
|
||||
ma->sss_front= 1.0f;
|
||||
ma->sss_back= 1.0f;
|
||||
|
||||
ma->mode= MA_TRACEBLE|MA_SHADBUF|MA_SHADOW|MA_RADIO|MA_RAYBIAS|MA_TANGENT_STR;
|
||||
ma->mode= MA_TRACEBLE|MA_SHADBUF|MA_SHADOW|MA_RAYBIAS|MA_TANGENT_STR;
|
||||
|
||||
ma->preview = NULL;
|
||||
}
|
||||
@@ -678,9 +678,6 @@ static void do_init_render_material(Material *ma, int r_mode, float *amb)
|
||||
if(needtang) ma->mode |= MA_NORMAP_TANG;
|
||||
else ma->mode &= ~MA_NORMAP_TANG;
|
||||
|
||||
if(r_mode & R_RADIO)
|
||||
if(ma->mode & MA_RADIO) needuv= 1;
|
||||
|
||||
if(ma->mode & (MA_VERTEXCOL|MA_VERTEXCOLP|MA_FACETEXTURE)) {
|
||||
needuv= 1;
|
||||
if(r_mode & R_OSA) ma->texco |= TEXCO_OSA; /* for texfaces */
|
||||
@@ -689,7 +686,7 @@ static void do_init_render_material(Material *ma, int r_mode, float *amb)
|
||||
|
||||
/* since the raytracer doesnt recalc O structs for each ray, we have to preset them all */
|
||||
if(r_mode & R_RAYTRACE) {
|
||||
if(ma->mode & (MA_RAYMIRROR|MA_RAYTRANSP|MA_SHADOW_TRA)) {
|
||||
if((ma->mode & (MA_RAYMIRROR|MA_SHADOW_TRA)) || ((ma->mode && MA_TRANSP) && (ma->mode & MA_RAYTRANSP))) {
|
||||
ma->texco |= NEED_UV|TEXCO_ORCO|TEXCO_REFL|TEXCO_NORM;
|
||||
if(r_mode & R_OSA) ma->texco |= TEXCO_OSA;
|
||||
}
|
||||
|
||||
@@ -5858,8 +5858,7 @@ static void smokeModifier_updateDepgraph(
|
||||
ModifierData *md, DagForest *forest, Scene *scene, Object *ob,
|
||||
DagNode *obNode)
|
||||
{
|
||||
SmokeModifierData *smd = (SmokeModifierData *) md;
|
||||
/*
|
||||
/*SmokeModifierData *smd = (SmokeModifierData *) md;
|
||||
if(smd && (smd->type & MOD_SMOKE_TYPE_DOMAIN) && smd->domain)
|
||||
{
|
||||
if(smd->domain->fluid_group)
|
||||
@@ -5893,7 +5892,7 @@ static void clothModifier_initData(ModifierData *md)
|
||||
|
||||
clmd->sim_parms = MEM_callocN(sizeof(ClothSimSettings), "cloth sim parms");
|
||||
clmd->coll_parms = MEM_callocN(sizeof(ClothCollSettings), "cloth coll parms");
|
||||
clmd->point_cache = BKE_ptcache_add();
|
||||
clmd->point_cache = BKE_ptcache_add(&clmd->ptcaches);
|
||||
|
||||
/* check for alloc failing */
|
||||
if(!clmd->sim_parms || !clmd->coll_parms || !clmd->point_cache)
|
||||
@@ -5972,12 +5971,13 @@ static void clothModifier_copyData(ModifierData *md, ModifierData *target)
|
||||
MEM_freeN(tclmd->sim_parms);
|
||||
if(tclmd->coll_parms)
|
||||
MEM_freeN(tclmd->coll_parms);
|
||||
if(tclmd->point_cache)
|
||||
BKE_ptcache_free(tclmd->point_cache);
|
||||
|
||||
BKE_ptcache_free_list(&tclmd->ptcaches);
|
||||
tclmd->point_cache = NULL;
|
||||
|
||||
tclmd->sim_parms = MEM_dupallocN(clmd->sim_parms);
|
||||
tclmd->coll_parms = MEM_dupallocN(clmd->coll_parms);
|
||||
tclmd->point_cache = BKE_ptcache_copy(clmd->point_cache);
|
||||
tclmd->point_cache = BKE_ptcache_copy_list(&tclmd->ptcaches, &clmd->ptcaches);
|
||||
tclmd->clothObject = NULL;
|
||||
}
|
||||
|
||||
@@ -6001,8 +6001,9 @@ static void clothModifier_freeData(ModifierData *md)
|
||||
MEM_freeN(clmd->sim_parms);
|
||||
if(clmd->coll_parms)
|
||||
MEM_freeN(clmd->coll_parms);
|
||||
if(clmd->point_cache)
|
||||
BKE_ptcache_free(clmd->point_cache);
|
||||
|
||||
BKE_ptcache_free_list(&clmd->ptcaches);
|
||||
clmd->point_cache = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -220,6 +220,7 @@ static void multires_subdisp(DerivedMesh *orig, Mesh *me, DerivedMesh *final, in
|
||||
int skip = multires_side_tot[totlvl - lvl] - 1;
|
||||
int i, j, k;
|
||||
|
||||
memset(&mmd_sub, 0, sizeof(MultiresModifierData));
|
||||
mmd_sub.lvl = mmd_sub.totlvl = totlvl;
|
||||
mrdm = multires_dm_create_from_derived(&mmd_sub, orig, me, 0, 0);
|
||||
|
||||
@@ -465,6 +466,7 @@ void multiresModifier_subdivide(MultiresModifierData *mmd, Object *ob, int dista
|
||||
MultiresModifierData mmd_sub;
|
||||
|
||||
orig = CDDM_from_mesh(me, NULL);
|
||||
memset(&mmd_sub, 0, sizeof(MultiresModifierData));
|
||||
mmd_sub.lvl = mmd_sub.totlvl = mmd->lvl;
|
||||
mrdm = multires_dm_create_from_derived(&mmd_sub, orig, me, 0, 0);
|
||||
totsubvert = mrdm->getNumVerts(mrdm);
|
||||
|
||||
@@ -3112,3 +3112,29 @@ void free_nodesystem(void)
|
||||
BLI_freelistN(&node_all_shaders);
|
||||
BLI_freelistN(&node_all_textures);
|
||||
}
|
||||
|
||||
/* called from unlink_scene, when deleting a scene goes over all scenes
|
||||
* other than the input, checks if they have render layer nodes referencing
|
||||
* the to-be-deleted scene, and resets them to NULL. */
|
||||
|
||||
/* XXX needs to get current scene then! */
|
||||
void clear_scene_in_nodes(Main *bmain, Scene *sce)
|
||||
{
|
||||
Scene *sce1;
|
||||
bNode *node;
|
||||
|
||||
for(sce1= bmain->scene.first; sce1; sce1=sce1->id.next) {
|
||||
if(sce1!=sce) {
|
||||
if(sce1->nodetree) {
|
||||
for(node= sce1->nodetree->nodes.first; node; node= node->next) {
|
||||
if(node->type==CMP_NODE_R_LAYERS) {
|
||||
Scene *nodesce= (Scene *)node->id;
|
||||
|
||||
if (nodesce==sce) node->id = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -107,6 +107,7 @@
|
||||
#include "BKE_sca.h"
|
||||
#include "BKE_scene.h"
|
||||
#include "BKE_screen.h"
|
||||
#include "BKE_sculpt.h"
|
||||
#include "BKE_softbody.h"
|
||||
|
||||
#include "LBM_fluidsim.h"
|
||||
@@ -222,6 +223,34 @@ void object_free_display(Object *ob)
|
||||
freedisplist(&ob->disp);
|
||||
}
|
||||
|
||||
void free_sculptsession(SculptSession **ssp)
|
||||
{
|
||||
if(ssp && *ssp) {
|
||||
SculptSession *ss = *ssp;
|
||||
if(ss->projverts)
|
||||
MEM_freeN(ss->projverts);
|
||||
|
||||
if(ss->fmap)
|
||||
MEM_freeN(ss->fmap);
|
||||
|
||||
if(ss->fmap_mem)
|
||||
MEM_freeN(ss->fmap_mem);
|
||||
|
||||
if(ss->texcache)
|
||||
MEM_freeN(ss->texcache);
|
||||
|
||||
if(ss->layer_disps)
|
||||
MEM_freeN(ss->layer_disps);
|
||||
|
||||
if(ss->mesh_co_orig)
|
||||
MEM_freeN(ss->mesh_co_orig);
|
||||
|
||||
MEM_freeN(ss);
|
||||
|
||||
*ssp = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* do not free object itself */
|
||||
void free_object(Object *ob)
|
||||
{
|
||||
@@ -276,6 +305,8 @@ void free_object(Object *ob)
|
||||
if(ob->soft) sbFree(ob->soft);
|
||||
if(ob->bsoft) bsbFree(ob->bsoft);
|
||||
if(ob->gpulamp.first) GPU_lamp_free(ob);
|
||||
|
||||
free_sculptsession(&ob->sculpt);
|
||||
}
|
||||
|
||||
static void unlink_object__unlinkModifierLinks(void *userData, Object *ob, Object **obpoin)
|
||||
@@ -1026,7 +1057,7 @@ SoftBody *copy_softbody(SoftBody *sb)
|
||||
|
||||
sbn->scratch= NULL;
|
||||
|
||||
sbn->pointcache= BKE_ptcache_copy(sb->pointcache);
|
||||
sbn->pointcache= BKE_ptcache_copy_list(&sbn->ptcaches, &sb->ptcaches);
|
||||
|
||||
return sbn;
|
||||
}
|
||||
@@ -1085,7 +1116,7 @@ ParticleSystem *copy_particlesystem(ParticleSystem *psys)
|
||||
psysn->reactevents.first = psysn->reactevents.last = NULL;
|
||||
psysn->renderdata = NULL;
|
||||
|
||||
psysn->pointcache= BKE_ptcache_copy(psys->pointcache);
|
||||
psysn->pointcache= BKE_ptcache_copy_list(&psysn->ptcaches, &psys->ptcaches);
|
||||
|
||||
id_us_plus((ID *)psysn->part);
|
||||
|
||||
@@ -1211,6 +1242,9 @@ Object *copy_object(Object *ob)
|
||||
copy_defgroups(&obn->defbase, &ob->defbase);
|
||||
copy_constraints(&obn->constraints, &ob->constraints);
|
||||
|
||||
obn->mode = 0;
|
||||
obn->sculpt = NULL;
|
||||
|
||||
/* increase user numbers */
|
||||
id_us_plus((ID *)obn->data);
|
||||
id_us_plus((ID *)obn->dup_group);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user