Merge branch 'master' of git://git.lumiera.org/LUMIERA into library
* 'master' of git://git.lumiera.org/LUMIERA: (80 commits) fix some warnings fix name of 'doc' target, remove the OPENGL flag for now improved the architecture overview (drawing) Fixed hyperactive scroll wheel zoom Fixed a bug with body redrawing and added some documentation Added some documentation to body and ruler Added support for audacity style playback period, and added some Added time indication improved the scons build to report all missing dependencies instead of stopping at the first one add my favorite lumiera logo to the TiddlyWiki page scons: use Doxygen builder makefile typo fix disable precompiled headers for now. replace the homebrew GCH-builder by a lib solution yet more make fixes make build work again with SCons 0.96 preliminary fix for the SCons build for Debian/testing automatically set DEBUG when using the (current) NoBug default ALPHA Fix build with gcc 4.3 integrated SVG Icon rendering into the SCons build ...
6
.gitignore
vendored
|
|
@ -2,10 +2,11 @@
|
|||
*~
|
||||
*.tar.*
|
||||
.[^.]*
|
||||
*.o
|
||||
*.os
|
||||
*.gch
|
||||
,valgrind.log*
|
||||
admin/scons/*.pyc
|
||||
*.pyc
|
||||
optcache
|
||||
Makefile.in
|
||||
build/*
|
||||
|
|
@ -13,5 +14,8 @@ bin/*
|
|||
autom4te.cache/*
|
||||
scripts/*
|
||||
configure
|
||||
config.log
|
||||
aclocal.m4
|
||||
semantic.cache
|
||||
wiki/backups/*
|
||||
doc/devel/draw/*.png
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
# Copyright (C) Lumiera.org
|
||||
# 2007, Christian Thaeter <ct@pipapo.org>
|
||||
# 2008, Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
|
|
@ -47,6 +48,9 @@ include $(top_srcdir)/src/gui/Makefile.am
|
|||
# plugins
|
||||
#include $(top_srcdir)/src...
|
||||
|
||||
# resources
|
||||
include $(top_srcdir)/icons/Makefile.am
|
||||
|
||||
# tests
|
||||
include $(top_srcdir)/tests/common/Makefile.am
|
||||
include $(top_srcdir)/tests/components/Makefile.am
|
||||
|
|
|
|||
128
SConstruct
|
|
@ -21,13 +21,6 @@
|
|||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
#####################################################################
|
||||
|
||||
import sys
|
||||
sys.path.append("./admin/scons")
|
||||
|
||||
import os
|
||||
from Buildhelper import *
|
||||
from LumieraEnvironment import *
|
||||
|
||||
|
||||
#-----------------------------------Configuration
|
||||
OPTIONSCACHEFILE = 'optcache'
|
||||
|
|
@ -37,6 +30,8 @@ BINDIR = 'bin'
|
|||
TESTDIR = 'tests'
|
||||
ICONDIR = 'icons'
|
||||
VERSION = '0.1+pre.01'
|
||||
TOOLDIR = './admin/scons'
|
||||
SVGRENDERER = 'admin/render-icon'
|
||||
#-----------------------------------Configuration
|
||||
|
||||
# NOTE: scons -h for help.
|
||||
|
|
@ -46,6 +41,14 @@ VERSION = '0.1+pre.01'
|
|||
|
||||
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path.append(TOOLDIR)
|
||||
|
||||
from Buildhelper import *
|
||||
from LumieraEnvironment import *
|
||||
|
||||
|
||||
#####################################################################
|
||||
|
||||
|
|
@ -56,7 +59,10 @@ def setupBasicEnvironment():
|
|||
EnsureSConsVersion(0,96,90)
|
||||
|
||||
opts = defineCmdlineOptions()
|
||||
env = LumieraEnvironment(options=opts)
|
||||
env = LumieraEnvironment(options=opts
|
||||
,toolpath = [TOOLDIR]
|
||||
,tools = ["default", "BuilderGCH", "BuilderDoxygen"]
|
||||
)
|
||||
|
||||
env.Append ( CCCOM=' -std=gnu99') # workaround for a bug: CCCOM currently doesn't honor CFLAGS, only CCFLAGS
|
||||
env.Replace( VERSION=VERSION
|
||||
|
|
@ -68,12 +74,12 @@ def setupBasicEnvironment():
|
|||
, CCFLAGS='-Wall ' # -fdiagnostics-show-option
|
||||
)
|
||||
|
||||
RegisterPrecompiledHeader_Builder(env)
|
||||
RegisterIcon_Builder(env,SVGRENDERER)
|
||||
handleNoBugSwitches(env)
|
||||
|
||||
env.Append(CPPDEFINES = '_GNU_SOURCE')
|
||||
appendCppDefine(env,'DEBUG','DEBUG', 'NDEBUG')
|
||||
appendCppDefine(env,'OPENGL','USE_OPENGL')
|
||||
# appendCppDefine(env,'OPENGL','USE_OPENGL')
|
||||
appendVal(env,'ARCHFLAGS', 'CCFLAGS') # for both C and C++
|
||||
appendVal(env,'OPTIMIZE', 'CCFLAGS', val=' -O3')
|
||||
appendVal(env,'DEBUG', 'CCFLAGS', val=' -ggdb')
|
||||
|
|
@ -101,8 +107,7 @@ def handleNoBugSwitches(env):
|
|||
level = env['BUILDLEVEL']
|
||||
if level in ['ALPHA', 'BETA']:
|
||||
if not env['DEBUG']:
|
||||
print 'NoBug: ALPHA or BETA builds without DEBUG not possible, exiting.'
|
||||
Exit(1)
|
||||
print 'Warning: NoBug ALPHA or BETA builds requires DEBUG=yes, switching DEBUG on!'
|
||||
env.Replace( DEBUG = 1 )
|
||||
env.Append(CPPDEFINES = 'EBUG_'+level)
|
||||
elif level == 'RELEASE':
|
||||
|
|
@ -123,7 +128,7 @@ def defineCmdlineOptions():
|
|||
allowed_values=('ALPHA', 'BETA', 'RELEASE'))
|
||||
,BoolOption('DEBUG', 'Build with debugging information and no optimizations', False)
|
||||
,BoolOption('OPTIMIZE', 'Build with strong optimization (-O3)', False)
|
||||
,BoolOption('OPENGL', 'Include support for OpenGL preview rendering', False)
|
||||
# ,BoolOption('OPENGL', 'Include support for OpenGL preview rendering', False)
|
||||
# ,EnumOption('DIST_TARGET', 'Build target architecture', 'auto',
|
||||
# allowed_values=('auto', 'i386', 'i686', 'x86_64' ), ignorecase=2)
|
||||
,PathOption('DESTDIR', 'Installation dir prefix', '/usr/local')
|
||||
|
|
@ -168,24 +173,21 @@ def configurePlatform(env):
|
|||
# run all configuration checks in the given env
|
||||
|
||||
# Perform checks for prerequisites --------------------------------------------
|
||||
problems = []
|
||||
if not conf.TryAction('pkg-config --version > $TARGET')[0]:
|
||||
print 'We need pkg-config for including library configurations, exiting.'
|
||||
Exit(1)
|
||||
problems.append('We need pkg-config for including library configurations, exiting.')
|
||||
|
||||
if not conf.CheckLibWithHeader('m', 'math.h','C'):
|
||||
print 'Did not find math.h / libm, exiting.'
|
||||
Exit(1)
|
||||
problems.append('Did not find math.h / libm.')
|
||||
|
||||
if not conf.CheckLibWithHeader('dl', 'dlfcn.h', 'C'):
|
||||
print 'Functions for runtime dynamic loading not available, exiting.'
|
||||
Exit(1)
|
||||
problems.append('Functions for runtime dynamic loading not available.')
|
||||
|
||||
if not conf.CheckLibWithHeader('nobugmt', 'nobug.h', 'C'):
|
||||
print 'Did not find NoBug [http://www.pipapo.org/pipawiki/NoBug], exiting.'
|
||||
Exit(1)
|
||||
problems.append('Did not find NoBug [http://www.pipapo.org/pipawiki/NoBug].')
|
||||
|
||||
if not conf.CheckLibWithHeader('pthread', 'pthread.h', 'C'):
|
||||
print 'Did not find the pthread lib or pthread.h, exiting.'
|
||||
problems.append('Did not find the pthread lib or pthread.h.')
|
||||
else:
|
||||
conf.env.Append(CPPFLAGS = ' -DHAVE_PTHREAD')
|
||||
conf.env.Append(CCFLAGS = ' -pthread')
|
||||
|
|
@ -197,49 +199,56 @@ def configurePlatform(env):
|
|||
conf.env.Append(CPPFLAGS = ' -DHAS_VALGRIND_VALGIND_H')
|
||||
|
||||
if not conf.CheckCXXHeader('tr1/memory'):
|
||||
print 'We rely on the std::tr1 proposed standard extension for shared_ptr.'
|
||||
Exit(1)
|
||||
problems.append('We rely on the std::tr1 proposed standard extension for shared_ptr.')
|
||||
|
||||
if not conf.CheckCXXHeader('boost/config.hpp'):
|
||||
print 'We need the C++ boost-lib.'
|
||||
Exit(1)
|
||||
problems.append('We need the C++ boost-lib.')
|
||||
else:
|
||||
if not conf.CheckCXXHeader('boost/shared_ptr.hpp'):
|
||||
print 'We need boost::shared_ptr (shared_ptr.hpp).'
|
||||
Exit(1)
|
||||
problems.append('We need boost::shared_ptr (shared_ptr.hpp).')
|
||||
if not conf.CheckLibWithHeader('boost_program_options-mt','boost/program_options.hpp','C++'):
|
||||
print 'We need boost::program_options (including binary lib for linking).'
|
||||
Exit(1)
|
||||
problems.append('We need boost::program_options (including binary lib for linking).')
|
||||
if not conf.CheckLibWithHeader('boost_regex-mt','boost/regex.hpp','C++'):
|
||||
print 'We need the boost regular expression lib (incl. binary lib for linking).'
|
||||
Exit(1)
|
||||
problems.append('We need the boost regular expression lib (incl. binary lib for linking).')
|
||||
|
||||
# if not conf.CheckLibWithHeader('gavl', ['gavlconfig.h', 'gavl/gavl.h'], 'C'):
|
||||
|
||||
if not conf.CheckPkgConfig('gavl', 1.0):
|
||||
print 'Did not find Gmerlin Audio Video Lib [http://gmerlin.sourceforge.net/gavl.html], exiting.'
|
||||
Exit(1)
|
||||
problems.append('Did not find Gmerlin Audio Video Lib [http://gmerlin.sourceforge.net/gavl.html].')
|
||||
else:
|
||||
conf.env.mergeConf('gavl')
|
||||
|
||||
if not conf.CheckPkgConfig('gtkmm-2.4', 2.8):
|
||||
print 'Unable to configure GTK--, exiting.'
|
||||
Exit(1)
|
||||
problems.append('Unable to configure GTK--, exiting.')
|
||||
|
||||
if not conf.CheckPkgConfig('glibmm-2.4', '2.16'):
|
||||
problems.append('Unable to configure Lib glib--, exiting.')
|
||||
|
||||
if not conf.CheckPkgConfig('cairomm-1.0', 0.6):
|
||||
print 'Unable to configure Cairo--, exiting.'
|
||||
Exit(1)
|
||||
problems.append('Unable to configure Cairo--, exiting.')
|
||||
|
||||
if not conf.CheckPkgConfig('gdl-1.0', '0.6.1'):
|
||||
print 'Unable to configure the GNOME DevTool Library, exiting.'
|
||||
Exit(1)
|
||||
problems.append('Unable to configure the GNOME DevTool Library, exiting.')
|
||||
|
||||
if not conf.CheckPkgConfig('xv'): Exit(1)
|
||||
if not conf.CheckPkgConfig('librsvg-2.0', '2.18.1'):
|
||||
problems.append('Need rsvg Library for rendering icons.')
|
||||
|
||||
if not conf.CheckPkgConfig('xv'): problems.append('Need lib xv')
|
||||
# if not conf.CheckPkgConfig('xext'): Exit(1)
|
||||
# if not conf.CheckPkgConfig('sm'): Exit(1)
|
||||
#
|
||||
# obviously not needed?
|
||||
|
||||
|
||||
# report missing dependencies
|
||||
if problems:
|
||||
print "*** unable to build due to the following problems:"
|
||||
for isue in problems:
|
||||
print " * %s" % isue
|
||||
print
|
||||
print "build aborted."
|
||||
Exit(1)
|
||||
|
||||
print "** Gathered Library Info: %s" % conf.env.libInfo.keys()
|
||||
|
||||
|
||||
|
|
@ -269,6 +278,10 @@ def defineBuildTargets(env, artifacts):
|
|||
setup sub-environments with special build options if necessary.
|
||||
We use a custom function to declare a whole tree of srcfiles.
|
||||
"""
|
||||
# use PCH to speed up building
|
||||
# env['GCH'] = ( env.PrecompiledHeader('$SRCDIR/pre.hpp')
|
||||
# + env.PrecompiledHeader('$SRCDIR/pre_a.hpp')
|
||||
# )
|
||||
|
||||
objback = srcSubtree(env,'$SRCDIR/backend')
|
||||
objproc = srcSubtree(env,'$SRCDIR/proc')
|
||||
|
|
@ -281,27 +294,29 @@ def defineBuildTargets(env, artifacts):
|
|||
+ env.StaticLibrary('$BINDIR/lumi.la', objlib)
|
||||
)
|
||||
|
||||
# use PCH to speed up building
|
||||
precomp = ( env.PrecompiledHeader('$SRCDIR/pre')
|
||||
+ env.PrecompiledHeader('$SRCDIR/pre_a')
|
||||
)
|
||||
env.Depends(objproc, precomp)
|
||||
env.Depends(objlib, precomp)
|
||||
|
||||
artifacts['lumiera'] = env.Program('$BINDIR/lumiera', ['$SRCDIR/main.cpp']+ core )
|
||||
artifacts['plugins'] = env.SharedLibrary('$BINDIR/lumiera-plugin', objplug)
|
||||
|
||||
|
||||
# the Lumiera GTK GUI
|
||||
envgtk = env.Clone().mergeConf(['gtkmm-2.4','cairomm-1.0','gdl-1.0','xv','xext','sm'])
|
||||
envgtk = env.Clone().mergeConf(['gtkmm-2.4','cairomm-1.0','gdl-1.0','librsvg-2.0','xv','xext','sm'])
|
||||
objgui = srcSubtree(envgtk,'$SRCDIR/gui')
|
||||
|
||||
# render and install Icons
|
||||
vector_icon_dir = env.subst('$ICONDIR/svg')
|
||||
prerendered_icon_dir = env.subst('$ICONDIR/prerendered')
|
||||
artifacts['icons'] = ( [env.IconRender(f) for f in scanSubtree(vector_icon_dir, ['*.svg'])]
|
||||
+ [env.IconCopy(f) for f in scanSubtree(prerendered_icon_dir, ['*.png'])]
|
||||
)
|
||||
|
||||
artifacts['lumigui'] = ( envgtk.Program('$BINDIR/lumigui', objgui + core)
|
||||
+ env.Install('$BINDIR', env.Glob('$ICONDIR/*.png'))
|
||||
+ env.Install('$BINDIR', env.Glob('$SRCDIR/gui/*.rc'))
|
||||
+ artifacts['icons']
|
||||
)
|
||||
|
||||
# call subdir SConscript(s) for independent components
|
||||
SConscript(dirs=[SRCDIR+'/tool'], exports='env artifacts core')
|
||||
SConscript(dirs=['admin'], exports='env envgtk artifacts core')
|
||||
SConscript(dirs=[TESTDIR], exports='env artifacts core')
|
||||
|
||||
|
||||
|
|
@ -321,16 +336,9 @@ def definePostBuildTargets(env, artifacts):
|
|||
env.Clean ('build', [ 'scache.conf', '.sconf_temp', '.sconsign.dblite', 'config.log' ])
|
||||
env.Clean ('build', [ '$SRCDIR/pre.gch' ])
|
||||
|
||||
# Doxygen documentation
|
||||
# Note: at the moment we only depend on Doxyfile
|
||||
# obviousely, we should depend on all sourcefiles
|
||||
# real Doxygen builder for scons is under developement for 0.97
|
||||
# so for the moment I prefere not to bother
|
||||
doxyfile = File('doc/devel/Doxyfile')
|
||||
env.NoClean(doxyfile)
|
||||
doxydoc = artifacts['doxydoc'] = [ Dir('doc/devel/html'), Dir('doc/devel/latex') ]
|
||||
env.Command(doxydoc, doxyfile, "doxygen Doxyfile 2>&1 |tee ,doxylog", chdir='doc/devel')
|
||||
env.Clean ('doc/devel', doxydoc + ['doc/devel/,doxylog'])
|
||||
doxydoc = artifacts['doxydoc'] = env.Doxygen('doc/devel/Doxyfile')
|
||||
env.Alias ('doc', doxydoc)
|
||||
env.Clean ('doc', doxydoc + ['doc/devel/,doxylog','doc/devel/warnings.txt'])
|
||||
|
||||
|
||||
def defineInstallTargets(env, artifacts):
|
||||
|
|
|
|||
|
|
@ -22,3 +22,7 @@ vgsuppression_SOURCES = $(admin_srcdir)/vgsuppression.c
|
|||
vgsuppression_CPPFLAGS = $(AM_CPPFLAGS) -std=gnu99 -Wall -Werror -I$(top_srcdir)/src/
|
||||
vgsuppression_LDADD = liblumi.a -lnobugmt -lpthread -ldl
|
||||
|
||||
noinst_PROGRAMS += rsvg-convert
|
||||
rsvg_convert_SOURCES = $(admin_srcdir)/rsvg-convert.c
|
||||
rsvg_convert_CPPFLAGS = $(AM_CPPFLAGS) -std=gnu99 -Wall -Werror
|
||||
rsvg_convert_LDADD = -lcairo -lglib-2.0 -lgthread-2.0 -lrsvg-2
|
||||
|
|
|
|||
17
admin/SConscript
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# -*- python -*-
|
||||
##
|
||||
## SConscript - SCons buildscript for helper tools (called by SConstruct)
|
||||
##
|
||||
|
||||
Import('env','envgtk','artifacts','core')
|
||||
|
||||
vgsuppr = env.Program('#$BINDIR/vgsuppression',['vgsuppression.c']+core)
|
||||
rsvg = envgtk.Program('#$BINDIR/rsvg-convert','rsvg-convert.c')
|
||||
|
||||
artifacts['tools'] += [ vgsuppr ## for supressing false valgrind alarms
|
||||
+ rsvg ## for rendering SVG icons (uses librsvg)
|
||||
]
|
||||
|
||||
# Rendering the SVG Icons depends on rsvg-convert
|
||||
env.Depends(artifacts['icons'], rsvg)
|
||||
|
||||
178
admin/render-icon.py
Executable file
|
|
@ -0,0 +1,178 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
# render-icons.py - Icon rendering utility script
|
||||
#
|
||||
# Copyright (C) Lumiera.org
|
||||
# 2008, Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||
#
|
||||
# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
import sys
|
||||
import getopt
|
||||
from xml.dom import minidom
|
||||
import os
|
||||
import shutil
|
||||
|
||||
#svgDir = "svg"
|
||||
#prerenderedDir = "prerendered"
|
||||
inkscapePath = "/usr/bin/inkscape"
|
||||
rsvgPath = "./rsvg-convert"
|
||||
artworkLayerPrefix = "artwork:"
|
||||
|
||||
def createDirectory( name ):
|
||||
if os.path.exists(name) == False:
|
||||
os.mkdir(name)
|
||||
|
||||
def copyMergeDirectory( src, dst ):
|
||||
listing = os.listdir(src)
|
||||
for file_name in listing:
|
||||
src_file_path = os.path.join(src, file_name)
|
||||
dst_file_path = os.path.join(dst, file_name)
|
||||
shutil.copyfile(src_file_path, dst_file_path)
|
||||
|
||||
def getDocumentSize( svg_element ):
|
||||
width = float(svg_element.getAttribute("width"))
|
||||
height = float(svg_element.getAttribute("height"))
|
||||
return [width, height]
|
||||
|
||||
def findChildLayerElement( parent_element ):
|
||||
for node in parent_element.childNodes:
|
||||
if node.nodeType == minidom.Node.ELEMENT_NODE:
|
||||
if node.tagName == "g":
|
||||
if node.getAttribute("inkscape:groupmode") == "layer":
|
||||
return node
|
||||
return None
|
||||
|
||||
def parsePlateLayer( layer ):
|
||||
rectangles = []
|
||||
for node in layer.childNodes:
|
||||
if node.nodeType == minidom.Node.ELEMENT_NODE:
|
||||
if node.tagName == "rect":
|
||||
x = float(node.getAttribute("x"))
|
||||
y = float(node.getAttribute("y"))
|
||||
width = float(node.getAttribute("width"))
|
||||
height = float(node.getAttribute("height"))
|
||||
rectangles.append([x, y, width, height])
|
||||
return rectangles
|
||||
|
||||
def parseSVG( file_path ):
|
||||
print "Parsing " + file_path
|
||||
svgdoc = minidom.parse(file_path)
|
||||
for root_node in svgdoc.childNodes:
|
||||
if root_node.nodeType == minidom.Node.ELEMENT_NODE:
|
||||
if root_node.tagName == "svg":
|
||||
size = getDocumentSize( root_node )
|
||||
layer = findChildLayerElement( root_node )
|
||||
if layer != None:
|
||||
layer_name = layer.getAttribute("inkscape:label")
|
||||
if layer_name[:len(artworkLayerPrefix)] == artworkLayerPrefix:
|
||||
artwork_name = layer_name[len(artworkLayerPrefix):]
|
||||
plate = findChildLayerElement( layer )
|
||||
if plate != None:
|
||||
return artwork_name, size, parsePlateLayer( plate )
|
||||
return None
|
||||
|
||||
def renderSvgInkscape(file_path, out_dir, artwork_name, rectangle, doc_size):
|
||||
|
||||
# Calculate the rendering rectangle
|
||||
x1 = rectangle[0]
|
||||
y1 = doc_size[1] - rectangle[1] - rectangle[3]
|
||||
x2 = x1 + rectangle[2]
|
||||
y2 = y1 + rectangle[3]
|
||||
|
||||
# Call Inkscape to do the render
|
||||
os.spawnlp(os.P_WAIT, inkscapePath, inkscapePath,
|
||||
file_path,
|
||||
"-z",
|
||||
"-a %g:%g:%g:%g" % (x1, y1, x2, y2),
|
||||
"-w %g" % (rectangle[2]), "-h %g" % (rectangle[3]),
|
||||
"--export-png=" + os.path.join(out_dir, "%gx%g/%s.png" % (rectangle[2], rectangle[3], artwork_name)))
|
||||
|
||||
def renderSvgRsvg(file_path, out_dir, artwork_name, rectangle, doc_size):
|
||||
# Prepare a Cairo context
|
||||
width = int(rectangle[2])
|
||||
height = int(rectangle[3])
|
||||
|
||||
if not os.path.exists(rsvgPath):
|
||||
print "Error: executable %s not found." % rsvgPath
|
||||
|
||||
os.spawnlp(os.P_WAIT, rsvgPath, rsvgPath,
|
||||
"--source-rect=%g:%g:%g:%g" % (rectangle[0], rectangle[1], rectangle[2], rectangle[3]),
|
||||
"--output=" + os.path.join(out_dir, "%gx%g/%s.png" % (rectangle[2], rectangle[3], artwork_name)),
|
||||
file_path)
|
||||
|
||||
def renderSvgIcon(file_path, out_dir):
|
||||
artwork_name, doc_size, rectangles = parseSVG(file_path)
|
||||
for rectangle in rectangles:
|
||||
renderSvgRsvg(file_path, out_dir, artwork_name, rectangle, doc_size)
|
||||
|
||||
def getTargetNames(file_path):
|
||||
"""get a list of target names to be rendered from the given source SVG
|
||||
usable to setup the build targets for SCons
|
||||
"""
|
||||
artwork_name, _ , rectangles = parseSVG(file_path)
|
||||
return ["%gx%g/%s.png" % (rectangle[2], rectangle[3], artwork_name) for rectangle in rectangles ]
|
||||
|
||||
#def renderSvgIcons():
|
||||
# listing = os.listdir(svgDir)
|
||||
# for file_path in listing:
|
||||
# [root, extension] = os.path.splitext(file_path)
|
||||
# if extension.lower() == ".svg":
|
||||
# renderSvgIcon(os.path.join(svgDir, file_path))
|
||||
|
||||
#def copyPrerenderedIcons():
|
||||
# listing = os.listdir(prerenderedDir)
|
||||
# for list_item in listing:
|
||||
# src_dir = os.path.join(prerenderedDir, list_item)
|
||||
# copyMergeDirectory(src_dir, list_item)
|
||||
|
||||
def printHelp():
|
||||
print "render-icon.py SRCFILE.svg TARGETDIR"
|
||||
print "An icon rendering utility script for lumiera"
|
||||
|
||||
def parseArguments(argv):
|
||||
optlist, args = getopt.getopt(argv, "")
|
||||
|
||||
if len(args) == 2:
|
||||
return args[0], args[1]
|
||||
|
||||
printHelp()
|
||||
return None, None
|
||||
|
||||
def main(argv):
|
||||
in_path, out_dir = parseArguments(argv)
|
||||
|
||||
if in_path == None or out_dir == None:
|
||||
return
|
||||
|
||||
if os.path.exists(out_dir) == False:
|
||||
print "Directory not found: " + out_dir
|
||||
return
|
||||
|
||||
# Create the icons folders
|
||||
createDirectory(os.path.join(out_dir, "48x48"))
|
||||
createDirectory(os.path.join(out_dir, "32x32"))
|
||||
createDirectory(os.path.join(out_dir, "24x24"))
|
||||
createDirectory(os.path.join(out_dir, "22x22"))
|
||||
createDirectory(os.path.join(out_dir, "16x16"))
|
||||
|
||||
renderSvgIcon(in_path, out_dir)
|
||||
|
||||
# Copy in prerendered icons
|
||||
#copyPrerenderedIcons()
|
||||
|
||||
if __name__=="__main__":
|
||||
main(sys.argv[1:])
|
||||
|
||||
219
admin/rsvg-convert.c
Normal file
|
|
@ -0,0 +1,219 @@
|
|||
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*-
|
||||
|
||||
rsvg-convert.c: Command line utility for exercising rsvg with cairo.
|
||||
|
||||
Copyright (C) 2005 Red Hat, Inc.
|
||||
Copyright (C) 2005 Dom Lachowicz <cinamod@hotmail.com>
|
||||
Copyright (C) 2005 Caleb Moore <c.moore@student.unsw.edu.au>
|
||||
Copyright (C) 2008 Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library 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.
|
||||
|
||||
Authors: Carl Worth <cworth@cworth.org>,
|
||||
Caleb Moore <c.moore@student.unsw.edu.au>,
|
||||
Dom Lachowicz <cinamod@hotmail.com>,
|
||||
Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||
*/
|
||||
|
||||
#ifndef N_
|
||||
#define N_(X) X
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <librsvg-2/librsvg/rsvg.h>
|
||||
#include <librsvg-2/librsvg/rsvg-cairo.h>
|
||||
|
||||
#ifdef CAIRO_HAS_PS_SURFACE
|
||||
#include <cairo-ps.h>
|
||||
#endif
|
||||
|
||||
#ifdef CAIRO_HAS_PDF_SURFACE
|
||||
#include <cairo-pdf.h>
|
||||
#endif
|
||||
|
||||
#ifdef CAIRO_HAS_SVG_SURFACE
|
||||
#include <cairo-svg.h>
|
||||
#endif
|
||||
|
||||
#ifndef _
|
||||
#define _(X) X
|
||||
#endif
|
||||
|
||||
struct RsvgSizeCallbackData {
|
||||
gint width;
|
||||
gint height;
|
||||
};
|
||||
|
||||
struct RsvgSourceRectangle {
|
||||
double left;
|
||||
double top;
|
||||
double width;
|
||||
double height;
|
||||
};
|
||||
|
||||
static void
|
||||
display_error (GError * err)
|
||||
{
|
||||
if (err) {
|
||||
g_print ("%s", err->message);
|
||||
g_error_free (err);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
rsvg_cairo_size_callback (int *width, int *height, gpointer data)
|
||||
{
|
||||
RsvgDimensionData *dimensions = data;
|
||||
*width = dimensions->width;
|
||||
*height = dimensions->height;
|
||||
}
|
||||
|
||||
static cairo_status_t
|
||||
rsvg_cairo_write_func (void *closure, const unsigned char *data, unsigned int length)
|
||||
{
|
||||
fwrite (data, 1, length, (FILE *) closure);
|
||||
return CAIRO_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
GOptionContext *g_option_context;
|
||||
int width = -1;
|
||||
int height = -1;
|
||||
char *source_rect_string = NULL;
|
||||
char *output = NULL;
|
||||
GError *error = NULL;
|
||||
char *filename = NULL;
|
||||
|
||||
char **args = NULL;
|
||||
RsvgHandle *rsvg;
|
||||
cairo_surface_t *surface = NULL;
|
||||
cairo_t *cr = NULL;
|
||||
RsvgDimensionData dimensions;
|
||||
FILE *output_file = stdout;
|
||||
|
||||
struct RsvgSourceRectangle source_rect = {0, 0, 0, 0};
|
||||
|
||||
GOptionEntry options_table[] = {
|
||||
{"width", 'w', 0, G_OPTION_ARG_INT, &width,
|
||||
N_("width [optional; defaults to the SVG's width]"), N_("<int>")},
|
||||
{"height", 'h', 0, G_OPTION_ARG_INT, &height,
|
||||
N_("height [optional; defaults to the SVG's height]"), N_("<int>")},
|
||||
{"source-rect", 'r', 0, G_OPTION_ARG_STRING, &source_rect_string,
|
||||
N_("source rectangle [optional; defaults to rectangle of the SVG document]"), N_("left:top:width:height")},
|
||||
{"output", 'o', 0, G_OPTION_ARG_STRING, &output,
|
||||
N_("output filename"), NULL},
|
||||
{G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &args, NULL, N_("FILE")},
|
||||
{NULL}
|
||||
};
|
||||
|
||||
g_thread_init(NULL);
|
||||
|
||||
g_option_context = g_option_context_new (_("- SVG Converter"));
|
||||
g_option_context_add_main_entries (g_option_context, options_table, NULL);
|
||||
g_option_context_set_help_enabled (g_option_context, TRUE);
|
||||
if (!g_option_context_parse (g_option_context, &argc, &argv, &error)) {
|
||||
display_error (error);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
g_option_context_free (g_option_context);
|
||||
|
||||
if (output != NULL) {
|
||||
output_file = fopen (output, "wb");
|
||||
if (!output_file) {
|
||||
fprintf (stderr, _("Error saving to file: %s\n"), output);
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
|
||||
if (args[0] != NULL) {
|
||||
filename = args[0];
|
||||
}
|
||||
|
||||
/* Parse the source rect */
|
||||
if(source_rect_string != NULL) {
|
||||
const int n = sscanf(source_rect_string, "%lg:%lg:%lg:%lg",
|
||||
&source_rect.left, &source_rect.top,
|
||||
&source_rect.width, &source_rect.height);
|
||||
if(n != 4 || source_rect.width <= 0.0 || source_rect.height < 0.0) {
|
||||
fprintf (stderr, _("Invalid source rect: %s\n"), source_rect_string);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
rsvg_init ();
|
||||
|
||||
rsvg = rsvg_handle_new_from_file (filename, &error);
|
||||
|
||||
if (!rsvg) {
|
||||
fprintf (stderr, _("Error reading SVG:"));
|
||||
display_error (error);
|
||||
fprintf (stderr, "\n");
|
||||
exit (1);
|
||||
}
|
||||
|
||||
/* if the user did not specify a source rectangle, get the page size from the SVG */
|
||||
if(source_rect_string == NULL) {
|
||||
rsvg_handle_set_size_callback (rsvg, rsvg_cairo_size_callback, &dimensions, NULL);
|
||||
source_rect.left = 0;
|
||||
source_rect.top = 0;
|
||||
source_rect.width = dimensions.width;
|
||||
source_rect.height = dimensions.height;
|
||||
}
|
||||
|
||||
rsvg_handle_get_dimensions (rsvg, &dimensions);
|
||||
|
||||
if(width != -1 && height != -1) {
|
||||
dimensions.width = width;
|
||||
dimensions.height = height;
|
||||
} else if(source_rect_string != NULL) {
|
||||
dimensions.width = source_rect.width;
|
||||
dimensions.height = source_rect.height;
|
||||
}
|
||||
|
||||
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
|
||||
dimensions.width, dimensions.height);
|
||||
|
||||
cr = cairo_create (surface);
|
||||
|
||||
cairo_translate(cr, -source_rect.left, -source_rect.top);
|
||||
|
||||
if(width != -1 && height != -1 && source_rect_string != NULL) {
|
||||
cairo_scale(cr, (double)dimensions.width / (double)source_rect.width,
|
||||
(double)dimensions.height / (double)source_rect.height);
|
||||
}
|
||||
|
||||
rsvg_handle_render_cairo (rsvg, cr);
|
||||
|
||||
cairo_surface_write_to_png_stream (surface, rsvg_cairo_write_func, output_file);
|
||||
|
||||
g_object_unref (G_OBJECT (rsvg));
|
||||
|
||||
cairo_destroy (cr);
|
||||
cairo_surface_destroy (surface);
|
||||
|
||||
fclose (output_file);
|
||||
|
||||
rsvg_term ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
230
admin/scons/BuilderDoxygen.py
Normal file
|
|
@ -0,0 +1,230 @@
|
|||
# -*- python -*-
|
||||
##
|
||||
## BuilderDoxygen.py - SCons builder for generating Doxygen documentation
|
||||
##
|
||||
|
||||
#
|
||||
# Astxx, the Asterisk C++ API and Utility Library.
|
||||
# Copyright (C) 2005, 2006 Matthew A. Nicholson
|
||||
# Copyright (C) 2006 Tim Blechmann
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License version 2.1 as published by the Free Software Foundation.
|
||||
#
|
||||
# This library 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 this library; if not, see http://www.gnu.org/licenses/
|
||||
#####################################################################
|
||||
|
||||
# history: 8/2008 adapted for Lumiera build system
|
||||
# added patch for Doxyfile in subdirectory
|
||||
# see http://www.scons.org/wiki/DoxygenBuilder
|
||||
|
||||
|
||||
import os
|
||||
import os.path
|
||||
import glob
|
||||
from fnmatch import fnmatch
|
||||
|
||||
|
||||
def DoxyfileParse(file_contents):
|
||||
"""
|
||||
Parse a Doxygen source file and return a dictionary of all the values.
|
||||
Values will be strings and lists of strings.
|
||||
"""
|
||||
data = {}
|
||||
|
||||
import shlex
|
||||
lex = shlex.shlex(instream = file_contents, posix = True)
|
||||
lex.wordchars += "*+./-:"
|
||||
lex.whitespace = lex.whitespace.replace("\n", "")
|
||||
lex.escape = ""
|
||||
|
||||
lineno = lex.lineno
|
||||
token = lex.get_token()
|
||||
key = token # the first token should be a key
|
||||
last_token = ""
|
||||
key_token = False
|
||||
next_key = False
|
||||
new_data = True
|
||||
|
||||
def append_data(data, key, new_data, token):
|
||||
if new_data or len(data[key]) == 0:
|
||||
data[key].append(token)
|
||||
else:
|
||||
data[key][-1] += token
|
||||
|
||||
while token:
|
||||
if token in ['\n']:
|
||||
if last_token not in ['\\']:
|
||||
key_token = True
|
||||
elif token in ['\\']:
|
||||
pass
|
||||
elif key_token:
|
||||
key = token
|
||||
key_token = False
|
||||
else:
|
||||
if token == "+=":
|
||||
if not data.has_key(key):
|
||||
data[key] = list()
|
||||
elif token == "=":
|
||||
data[key] = list()
|
||||
else:
|
||||
append_data( data, key, new_data, token )
|
||||
new_data = True
|
||||
|
||||
last_token = token
|
||||
token = lex.get_token()
|
||||
|
||||
if last_token == '\\' and token != '\n':
|
||||
new_data = False
|
||||
append_data( data, key, new_data, '\\' )
|
||||
|
||||
# compress lists of len 1 into single strings
|
||||
for (k, v) in data.items():
|
||||
if len(v) == 0:
|
||||
data.pop(k)
|
||||
|
||||
# items in the following list will be kept as lists and not converted to strings
|
||||
if k in ["INPUT", "FILE_PATTERNS", "EXCLUDE_PATTERNS"]:
|
||||
continue
|
||||
|
||||
if len(v) == 1:
|
||||
data[k] = v[0]
|
||||
|
||||
return data
|
||||
|
||||
def DoxySourceScan(node, env, path):
|
||||
"""
|
||||
Doxygen Doxyfile source scanner. This should scan the Doxygen file and add
|
||||
any files used to generate docs to the list of source files.
|
||||
"""
|
||||
default_file_patterns = [
|
||||
'*.c', '*.cc', '*.cxx', '*.cpp', '*.c++', '*.java', '*.ii', '*.ixx',
|
||||
'*.ipp', '*.i++', '*.inl', '*.h', '*.hh ', '*.hxx', '*.hpp', '*.h++',
|
||||
'*.idl', '*.odl', '*.cs', '*.php', '*.php3', '*.inc', '*.m', '*.mm',
|
||||
'*.py',
|
||||
]
|
||||
|
||||
default_exclude_patterns = [
|
||||
'*~',
|
||||
]
|
||||
|
||||
sources = []
|
||||
|
||||
data = DoxyfileParse(node.get_contents())
|
||||
|
||||
if data.get("RECURSIVE", "NO") == "YES":
|
||||
recursive = True
|
||||
else:
|
||||
recursive = False
|
||||
|
||||
file_patterns = data.get("FILE_PATTERNS", default_file_patterns)
|
||||
exclude_patterns = data.get("EXCLUDE_PATTERNS", default_exclude_patterns)
|
||||
|
||||
#
|
||||
# We're running in the top-level directory, but the doxygen
|
||||
# configuration file is in the same directory as node; this means
|
||||
# that relative pathnames in node must be adjusted before they can
|
||||
# go onto the sources list
|
||||
conf_dir = os.path.dirname(str(node))
|
||||
|
||||
for node in data.get("INPUT", []):
|
||||
if not os.path.isabs(node):
|
||||
node = os.path.join(conf_dir, node)
|
||||
if os.path.isfile(node):
|
||||
sources.append(node)
|
||||
elif os.path.isdir(node):
|
||||
if recursive:
|
||||
for root, dirs, files in os.walk(node):
|
||||
for f in files:
|
||||
filename = os.path.join(root, f)
|
||||
|
||||
pattern_check = reduce(lambda x, y: x or bool(fnmatch(filename, y)), file_patterns, False)
|
||||
exclude_check = reduce(lambda x, y: x and fnmatch(filename, y), exclude_patterns, True)
|
||||
|
||||
if pattern_check and not exclude_check:
|
||||
sources.append(filename)
|
||||
else:
|
||||
for pattern in file_patterns:
|
||||
sources.extend(glob.glob("/".join([node, pattern])))
|
||||
|
||||
sources = map( lambda path: env.File(path), sources )
|
||||
return sources
|
||||
|
||||
|
||||
def DoxySourceScanCheck(node, env):
|
||||
"""Check if we should scan this file"""
|
||||
return os.path.isfile(node.path)
|
||||
|
||||
def DoxyEmitter(source, target, env):
|
||||
"""Doxygen Doxyfile emitter"""
|
||||
# possible output formats and their default values and output locations
|
||||
output_formats = {
|
||||
"HTML": ("YES", "html"),
|
||||
"LATEX": ("YES", "latex"),
|
||||
"RTF": ("NO", "rtf"),
|
||||
"MAN": ("NO", "man"),
|
||||
"XML": ("NO", "xml"),
|
||||
}
|
||||
|
||||
data = DoxyfileParse(source[0].get_contents())
|
||||
|
||||
targets = []
|
||||
out_dir = data.get("OUTPUT_DIRECTORY", ".")
|
||||
|
||||
# add our output locations
|
||||
for (k, v) in output_formats.items():
|
||||
if data.get("GENERATE_" + k, v[0]) == "YES":
|
||||
targets.append(env.Dir( os.path.join(out_dir, data.get(k + "_OUTPUT", v[1]))) )
|
||||
|
||||
# don't clobber targets
|
||||
for node in targets:
|
||||
env.Precious(node)
|
||||
|
||||
# set up cleaning stuff
|
||||
for node in targets:
|
||||
env.Clean(node, node)
|
||||
|
||||
return (targets, source)
|
||||
|
||||
|
||||
def generate(env):
|
||||
"""
|
||||
Add builders and construction variables for the
|
||||
Doxygen tool. This is currently for Doxygen 1.4.6.
|
||||
"""
|
||||
doxyfile_scanner = env.Scanner(
|
||||
DoxySourceScan,
|
||||
"DoxySourceScan",
|
||||
scan_check = DoxySourceScanCheck,
|
||||
)
|
||||
|
||||
import SCons.Builder
|
||||
doxyfile_builder = SCons.Builder.Builder(
|
||||
action = "cd ${SOURCE.dir} && (${DOXYGEN} ${SOURCE.file} 2>&1 |tee ,doxylog)",
|
||||
emitter = DoxyEmitter,
|
||||
target_factory = env.fs.Entry,
|
||||
single_source = True,
|
||||
source_scanner = doxyfile_scanner,
|
||||
)
|
||||
|
||||
env.Append(BUILDERS = {
|
||||
'Doxygen': doxyfile_builder,
|
||||
})
|
||||
|
||||
env.AppendUnique(
|
||||
DOXYGEN = 'doxygen',
|
||||
)
|
||||
|
||||
def exists(env):
|
||||
"""
|
||||
Make sure doxygen exists.
|
||||
"""
|
||||
return env.Detect("doxygen")
|
||||
|
||||
110
admin/scons/BuilderGCH.py
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
# -*- python -*-
|
||||
##
|
||||
## BuilderGCH.py - SCons builder for gcc's precompiled headers
|
||||
##
|
||||
|
||||
# Copyright (C) scons.org/wiki/GchBuilder
|
||||
# 2006 Tim Blechmann
|
||||
# 2008 Hermann Vosseler <Ichthyostega@web.de>
|
||||
#
|
||||
# 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, see http://www.gnu.org/licenses/
|
||||
#####################################################################
|
||||
|
||||
# history: 8/2008 adapted for Lumiera build system
|
||||
# changed to accept a list of precompiled header defs
|
||||
|
||||
|
||||
from types import ListType
|
||||
|
||||
import SCons.Action
|
||||
import SCons.Builder
|
||||
import SCons.Scanner.C
|
||||
import SCons.Util
|
||||
import SCons.Script
|
||||
|
||||
SCons.Script.EnsureSConsVersion(0,96,92)
|
||||
|
||||
GchAction = SCons.Action.Action('$GCHCOM', '$GCHCOMSTR')
|
||||
GchShAction = SCons.Action.Action('$GCHSHCOM', '$GCHSHCOMSTR')
|
||||
|
||||
def gen_suffix(env, sources):
|
||||
return sources[0].get_suffix() + env['GCHSUFFIX']
|
||||
|
||||
|
||||
GchShBuilder = SCons.Builder.Builder(action = GchShAction,
|
||||
source_scanner = SCons.Scanner.C.CScanner(),
|
||||
suffix = gen_suffix)
|
||||
|
||||
GchBuilder = SCons.Builder.Builder(action = GchAction,
|
||||
source_scanner = SCons.Scanner.C.CScanner(),
|
||||
suffix = gen_suffix)
|
||||
|
||||
def setup_dependency(target,source,env, key):
|
||||
scanner = SCons.Scanner.C.CScanner()
|
||||
path = scanner.path(env)
|
||||
deps = scanner(source[0], env, path)
|
||||
|
||||
if env.has_key(key) and env[key]:
|
||||
for header in env[key]:
|
||||
header_path = header.path.strip('.gch')
|
||||
if header_path in [x.path for x in deps]:
|
||||
print "Precompiled header(%s) %s \t <--- %s" % (key,header_path,source[0])
|
||||
env.Depends(target, header)
|
||||
|
||||
|
||||
def static_pch_emitter(target,source,env):
|
||||
SCons.Defaults.StaticObjectEmitter( target, source, env )
|
||||
setup_dependency(target,source,env, key='GCH')
|
||||
return (target, source)
|
||||
|
||||
def shared_pch_emitter(target,source,env):
|
||||
SCons.Defaults.SharedObjectEmitter( target, source, env )
|
||||
setup_dependency(target,source,env, key='GCH-sh')
|
||||
return (target, source)
|
||||
|
||||
def generate(env):
|
||||
"""
|
||||
Add builders and construction variables for the Gch builder.
|
||||
"""
|
||||
env.Append(BUILDERS = {
|
||||
'gch': env.Builder(
|
||||
action = GchAction,
|
||||
target_factory = env.fs.File,
|
||||
),
|
||||
'gchsh': env.Builder(
|
||||
action = GchShAction,
|
||||
target_factory = env.fs.File,
|
||||
),
|
||||
})
|
||||
|
||||
try:
|
||||
bld = env['BUILDERS']['GCH']
|
||||
bldsh = env['BUILDERS']['GCH-sh']
|
||||
except KeyError:
|
||||
bld = GchBuilder
|
||||
bldsh = GchShBuilder
|
||||
env['BUILDERS']['PrecompiledHeader'] = bld
|
||||
env['BUILDERS']['PrecompiledHeaderShared'] = bldsh
|
||||
|
||||
env['GCHCOM'] = '$CXX -o $TARGET -x c++-header -c $CXXFLAGS $_CCCOMCOM $SOURCE'
|
||||
env['GCHSHCOM'] = '$CXX -o $TARGET -x c++-header -c $SHCXXFLAGS $_CCCOMCOM $SOURCE'
|
||||
env['GCHSUFFIX'] = '.gch'
|
||||
|
||||
for suffix in SCons.Util.Split('.c .C .cc .cxx .cpp .c++'):
|
||||
env['BUILDERS']['StaticObject'].add_emitter( suffix, static_pch_emitter )
|
||||
env['BUILDERS']['SharedObject'].add_emitter( suffix, shared_pch_emitter )
|
||||
|
||||
|
||||
def exists(env):
|
||||
return env.Detect('g++')
|
||||
|
|
@ -28,6 +28,8 @@ import fnmatch
|
|||
import re
|
||||
import tarfile
|
||||
|
||||
from SCons.Action import Action
|
||||
|
||||
|
||||
|
||||
#
|
||||
|
|
@ -58,13 +60,13 @@ def srcSubtree(env,tree,isShared=False,builder=None, **args):
|
|||
else:
|
||||
builder = lambda f: env.Object(f, **args)
|
||||
|
||||
return [builder(f) for f in scanSrcSubtree(root)]
|
||||
return [builder(f) for f in scanSubtree(root)]
|
||||
|
||||
|
||||
|
||||
SRCPATTERNS = ['*.c','*.cpp','*.cc']
|
||||
|
||||
def scanSrcSubtree(roots):
|
||||
def scanSubtree(roots, patterns=SRCPATTERNS):
|
||||
""" first expand (possible) wildcards and filter out non-dirs.
|
||||
Then scan the given subtree for source filesnames
|
||||
(python generator function)
|
||||
|
|
@ -73,7 +75,7 @@ def scanSrcSubtree(roots):
|
|||
for (dir,_,files) in os.walk(root):
|
||||
if dir.startswith('./'):
|
||||
dir = dir[2:]
|
||||
for p in SRCPATTERNS:
|
||||
for p in patterns:
|
||||
for f in fnmatch.filter(files, p):
|
||||
yield os.path.join(dir,f)
|
||||
|
||||
|
|
@ -102,22 +104,50 @@ def filterNodes(nlist, removeName=None):
|
|||
return filter(predicate, nlist)
|
||||
|
||||
|
||||
def RegisterPrecompiledHeader_Builder(env):
|
||||
""" Registeres an Custom Builder for generating a precompiled Header.
|
||||
Note you should define a dependency to the PCH file
|
||||
"""
|
||||
def genCmdline(source, target, env, for_signature):
|
||||
return '$CXXCOM -x c++-header %s' % source[0]
|
||||
def fixSourceDependency(target, source, env):
|
||||
print "precompiled header: %s --> %s" % (source[0],target[0])
|
||||
return (target, source)
|
||||
|
||||
def getDirname(dir):
|
||||
""" extract directory name without leading path """
|
||||
dir = os.path.realpath(dir)
|
||||
if not os.path.isdir(dir):
|
||||
dir,_ = os.path.split(dir)
|
||||
_, name = os.path.split(dir)
|
||||
return name
|
||||
|
||||
gchBuilder = env.Builder( generator = genCmdline
|
||||
, emitter = fixSourceDependency
|
||||
, suffix = '.gch'
|
||||
, src_suffix = '.hpp'
|
||||
)
|
||||
env.Append(BUILDERS = {'PrecompiledHeader' : gchBuilder})
|
||||
|
||||
|
||||
def RegisterIcon_Builder(env, renderer):
|
||||
""" Registeres Custom Builders for generating and installing Icons.
|
||||
Additionally you need to build the tool (rsvg-convert.c)
|
||||
used to generate png from the svg source using librsvg.
|
||||
"""
|
||||
renderer = __import__(renderer) # load python script for invoking the render
|
||||
renderer.rsvgPath = env.subst("$BINDIR/rsvg-convert")
|
||||
|
||||
def invokeRenderer(target, source, env):
|
||||
source = str(source[0])
|
||||
targetdir = env.subst("$BINDIR")
|
||||
renderer.main([source,targetdir])
|
||||
return 0
|
||||
|
||||
def createIconTargets(target,source,env):
|
||||
""" parse the SVG to get the target file names """
|
||||
source = str(source[0])
|
||||
targetdir = os.path.basename(str(target[0]))
|
||||
targetfiles = renderer.getTargetNames(source) # parse SVG
|
||||
return (["$BINDIR/%s" % name for name in targetfiles], source)
|
||||
|
||||
def IconCopy(env, source):
|
||||
"""Copy icon to corresponding icon dir. """
|
||||
subdir = getDirname(source)
|
||||
return env.Install("$BINDIR/%s" % subdir, source)
|
||||
|
||||
|
||||
buildIcon = env.Builder( action = Action(invokeRenderer, "rendering Icon: $SOURCE --> $TARGETS")
|
||||
, single_source = True
|
||||
, emitter = createIconTargets
|
||||
)
|
||||
env.Append(BUILDERS = {'IconRender' : buildIcon})
|
||||
env.AddMethod(IconCopy)
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@
|
|||
#####################################################################
|
||||
|
||||
|
||||
from SCons.SConf import SConf
|
||||
import SCons
|
||||
import SCons.SConf
|
||||
from SCons.Environment import Environment
|
||||
|
||||
from Buildhelper import *
|
||||
|
|
@ -77,17 +78,34 @@ class LumieraEnvironment(Environment):
|
|||
return libInfo
|
||||
|
||||
def Glob (self, pattern):
|
||||
""" temporary workaround; newer versions of SCons provide this as a global function
|
||||
"""
|
||||
""" temporary workaround; newer versions of SCons provide this as a global function """
|
||||
pattern = self.subst(pattern)
|
||||
return glob.glob(pattern)
|
||||
|
||||
def AddMethod (self, function):
|
||||
""" temporary workaround; newer versions of SCons provide this as a global function """
|
||||
self.__dict__[function.__name__] = function.__get__(self)
|
||||
|
||||
|
||||
#### temporary pre 1.0 SCons compatibility hack ####
|
||||
_ver = map(int, SCons.__version__.split('.'))
|
||||
_old = (_ver[0]<1 and _ver[1]<98)
|
||||
if _old:
|
||||
ConfigBase = SCons.SConf.SConf
|
||||
else:
|
||||
ConfigBase = SCons.SConf.SConfBase
|
||||
del LumieraEnvironment.Glob
|
||||
del LumieraEnvironment.AddMethod
|
||||
# use the official impl present since SCons 0.98
|
||||
# use the new name of the config context base class
|
||||
|
||||
|
||||
class LumieraConfigContext(SConf):
|
||||
|
||||
class LumieraConfigContext(ConfigBase):
|
||||
""" Extends the SCons Configure context with some convenience methods
|
||||
"""
|
||||
def __init__(self, *args,**kw):
|
||||
SConf.__init__(self,*args,**kw)
|
||||
ConfigBase.__init__(self,*args,**kw)
|
||||
|
||||
def CheckPkgConfig (self, libID, minVersion=0):
|
||||
print "Checking for library configuration: %s " % libID
|
||||
|
|
|
|||
|
|
@ -159,7 +159,9 @@ AC_CHECK_LIB(Xv, XvQueryAdaptors, ,
|
|||
|
||||
|
||||
############## Pkg Dependancies
|
||||
PKG_CHECK_MODULES(GTK_LUMIERA, [gtkmm-2.4 >= 2.8 gdl-1.0 >= 0.6.1 cairomm-1.0 >= 0.6.0 gavl >= 0.2.5])
|
||||
PKG_CHECK_MODULES(GTK_LUMIERA, [
|
||||
gtkmm-2.4 >= 2.8 gdl-1.0 >= 0.6.1 cairomm-1.0 >= 0.6.0
|
||||
gavl >= 0.2.5 librsvg-2.0 >= 2.18.1])
|
||||
|
||||
AC_SUBST(GTK_LUMIERA_CFLAGS)
|
||||
AC_SUBST(GTK_LUMIERA_LIBS)
|
||||
|
|
|
|||
1
doc/devel/.gitignore
vendored
|
|
@ -1,2 +1,3 @@
|
|||
,doxylog
|
||||
warnings.txt
|
||||
html/*
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
# Doxyfile 1.5.1
|
||||
# Doxyfile 1.5.5
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
DOXYFILE_ENCODING = UTF-8
|
||||
PROJECT_NAME = Lumiera
|
||||
PROJECT_NUMBER = 3.0+alpha
|
||||
PROJECT_NUMBER = 0.1+pre
|
||||
OUTPUT_DIRECTORY =
|
||||
CREATE_SUBDIRS = YES
|
||||
OUTPUT_LANGUAGE = English
|
||||
USE_WINDOWS_ENCODING = NO
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = NO
|
||||
ABBREVIATE_BRIEF = "The $name class" \
|
||||
|
|
@ -30,17 +30,23 @@ STRIP_FROM_PATH = ../../src/ \
|
|||
STRIP_FROM_INC_PATH =
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = YES
|
||||
QT_AUTOBRIEF = NO
|
||||
MULTILINE_CPP_IS_BRIEF = NO
|
||||
DETAILS_AT_TOP = NO
|
||||
DETAILS_AT_TOP = YES
|
||||
INHERIT_DOCS = YES
|
||||
SEPARATE_MEMBER_PAGES = NO
|
||||
TAB_SIZE = 4
|
||||
ALIASES =
|
||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
||||
OPTIMIZE_OUTPUT_JAVA = NO
|
||||
OPTIMIZE_FOR_FORTRAN = NO
|
||||
OPTIMIZE_OUTPUT_VHDL = NO
|
||||
BUILTIN_STL_SUPPORT = YES
|
||||
CPP_CLI_SUPPORT = NO
|
||||
SIP_SUPPORT = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
SUBGROUPING = YES
|
||||
TYPEDEF_HIDES_STRUCT = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# Build related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
|
|
@ -49,6 +55,7 @@ EXTRACT_PRIVATE = YES
|
|||
EXTRACT_STATIC = YES
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
EXTRACT_LOCAL_METHODS = NO
|
||||
EXTRACT_ANON_NSPACES = NO
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
HIDE_FRIEND_COMPOUNDS = NO
|
||||
|
|
@ -58,8 +65,9 @@ CASE_SENSE_NAMES = YES
|
|||
HIDE_SCOPE_NAMES = NO
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = YES
|
||||
SORT_BRIEF_DOCS = YES
|
||||
SORT_MEMBER_DOCS = NO
|
||||
SORT_BRIEF_DOCS = NO
|
||||
SORT_GROUP_NAMES = NO
|
||||
SORT_BY_SCOPE_NAME = NO
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
|
|
@ -79,12 +87,13 @@ WARN_IF_UNDOCUMENTED = NO
|
|||
WARN_IF_DOC_ERROR = YES
|
||||
WARN_NO_PARAMDOC = YES
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
WARN_LOGFILE =
|
||||
WARN_LOGFILE = warnings.txt
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../../src/ \
|
||||
../../tests/
|
||||
INPUT_ENCODING = UTF-8
|
||||
FILE_PATTERNS = *.c \
|
||||
*.cc \
|
||||
*.cxx \
|
||||
|
|
@ -130,6 +139,7 @@ RECURSIVE = YES
|
|||
EXCLUDE =
|
||||
EXCLUDE_SYMLINKS = YES
|
||||
EXCLUDE_PATTERNS =
|
||||
EXCLUDE_SYMBOLS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS = *
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
|
|
@ -168,6 +178,10 @@ HTML_FOOTER =
|
|||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
GENERATE_DOCSET = NO
|
||||
DOCSET_FEEDNAME = "Lumiera Doxygen docs"
|
||||
DOCSET_BUNDLE_ID = org.doxygen.Project
|
||||
HTML_DYNAMIC_SECTIONS = NO
|
||||
CHM_FILE =
|
||||
HHC_LOCATION =
|
||||
GENERATE_CHI = NO
|
||||
|
|
@ -251,6 +265,7 @@ PERL_PATH = /usr/bin/perl
|
|||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = YES
|
||||
MSCGEN_PATH =
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
HAVE_DOT = YES
|
||||
CLASS_GRAPH = YES
|
||||
|
|
@ -267,8 +282,7 @@ DIRECTORY_GRAPH = YES
|
|||
DOT_IMAGE_FORMAT = png
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
DOT_GRAPH_MAX_NODES = 50
|
||||
MAX_DOT_GRAPH_DEPTH = 1000
|
||||
DOT_TRANSPARENT = NO
|
||||
DOT_MULTI_TARGETS = YES
|
||||
|
|
|
|||
|
|
@ -14,10 +14,10 @@
|
|||
sodipodi:version="0.32"
|
||||
inkscape:version="0.45.1"
|
||||
version="1.0"
|
||||
sodipodi:docbase="/home/hiv/devel/skizzen"
|
||||
sodipodi:docname="Cin3.Architecture-1.svg"
|
||||
sodipodi:docbase="/mnt/Lager/heim/devel/lumi/doc/devel/draw"
|
||||
sodipodi:docname="Lumi.Architecture-1.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
inkscape:export-filename="/home/hiv/devel/skizzen/Cin3.Architecture-1.png"
|
||||
inkscape:export-filename="/home/hiv/devel/skizzen/Lumi.Architecture-1.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
@ -43,17 +43,24 @@
|
|||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="394.65714"
|
||||
inkscape:cy="258.89573"
|
||||
inkscape:zoom="1.4811321"
|
||||
inkscape:cx="384"
|
||||
inkscape:cy="265"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
width="768px"
|
||||
height="530px"
|
||||
inkscape:window-width="1010"
|
||||
inkscape:window-height="812"
|
||||
inkscape:window-width="1209"
|
||||
inkscape:window-height="949"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0" />
|
||||
inkscape:window-y="28"
|
||||
showgrid="true"
|
||||
inkscape:grid-points="true"
|
||||
inkscape:grid-bbox="false"
|
||||
gridspacingx="2px"
|
||||
gridspacingy="2px"
|
||||
objecttolerance="50"
|
||||
gridtolerance="10000" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
|
|
@ -87,7 +94,7 @@
|
|||
style="opacity:1;color:#000000;fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3136"
|
||||
width="449.55356"
|
||||
height="142.91072"
|
||||
height="144.89977"
|
||||
x="46.375008"
|
||||
y="369.10715" />
|
||||
<rect
|
||||
|
|
@ -269,15 +276,19 @@
|
|||
y="252.75615" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"
|
||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"
|
||||
x="602.52142"
|
||||
y="267.42578"
|
||||
id="text3229"
|
||||
sodipodi:linespacing="100%"><tspan
|
||||
y="267.42578"
|
||||
sodipodi:role="line"
|
||||
id="tspan2336"
|
||||
x="602.52142"
|
||||
id="tspan3233"
|
||||
sodipodi:role="line">Defaults</tspan></text>
|
||||
y="267.42578">Session</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2338"
|
||||
x="602.52142"
|
||||
y="277.42578">Defaults</tspan></text>
|
||||
<rect
|
||||
y="46.375"
|
||||
x="606.66071"
|
||||
|
|
@ -286,10 +297,10 @@
|
|||
id="rect3235"
|
||||
style="opacity:1;color:#000000;fill:#ececec;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<rect
|
||||
y="393.71426"
|
||||
x="166.57144"
|
||||
height="75.714287"
|
||||
width="103.16072"
|
||||
y="389.97562"
|
||||
x="159.97351"
|
||||
height="79.452911"
|
||||
width="119.98783"
|
||||
id="rect3246"
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<text
|
||||
|
|
@ -304,12 +315,12 @@
|
|||
x="174.14285"
|
||||
y="455.23215">Cache</tspan></text>
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3254"
|
||||
width="203.48215"
|
||||
height="32.178574"
|
||||
x="166.57141"
|
||||
y="475.10712" />
|
||||
width="119.99424"
|
||||
height="29.96665"
|
||||
x="159.96713"
|
||||
y="480.03333" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"
|
||||
|
|
@ -322,10 +333,10 @@
|
|||
x="174.14285"
|
||||
y="494.98215">IO-Handling</tspan></text>
|
||||
<rect
|
||||
y="454.28571"
|
||||
x="373.83926"
|
||||
height="53.000004"
|
||||
width="113.57143"
|
||||
y="455.99066"
|
||||
x="290"
|
||||
height="54.009354"
|
||||
width="200.02533"
|
||||
id="rect3263"
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<rect
|
||||
|
|
@ -333,92 +344,92 @@
|
|||
id="rect3268"
|
||||
width="17.035713"
|
||||
height="17.982149"
|
||||
x="285.82141"
|
||||
x="532.60168"
|
||||
y="393.71426" />
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3270"
|
||||
width="17.035713"
|
||||
height="17.982149"
|
||||
x="313.03125"
|
||||
x="559.81152"
|
||||
y="393.71426" />
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3272"
|
||||
width="17.035713"
|
||||
height="17.982149"
|
||||
x="340.24106"
|
||||
x="587.0213"
|
||||
y="393.71426" />
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3274"
|
||||
width="17.035713"
|
||||
height="17.982149"
|
||||
x="367.4509"
|
||||
x="614.23114"
|
||||
y="393.71426" />
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3276"
|
||||
width="17.035713"
|
||||
height="17.982149"
|
||||
x="394.66074"
|
||||
x="641.44098"
|
||||
y="393.71426" />
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3278"
|
||||
width="17.035713"
|
||||
height="17.982149"
|
||||
x="285.82141"
|
||||
x="532.60168"
|
||||
y="428.25894" />
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3280"
|
||||
width="17.035713"
|
||||
height="17.982149"
|
||||
x="313.03125"
|
||||
x="559.81152"
|
||||
y="428.25894" />
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3282"
|
||||
width="17.035713"
|
||||
height="17.982149"
|
||||
x="340.24106"
|
||||
x="587.0213"
|
||||
y="428.25894" />
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3284"
|
||||
width="17.035713"
|
||||
height="17.982149"
|
||||
x="367.4509"
|
||||
x="614.23114"
|
||||
y="428.25894" />
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect3286"
|
||||
width="17.035713"
|
||||
height="17.982149"
|
||||
x="394.66074"
|
||||
x="641.44098"
|
||||
y="428.25894" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"
|
||||
x="381.06494"
|
||||
y="472.18738"
|
||||
x="300"
|
||||
y="480"
|
||||
id="text3306"
|
||||
sodipodi:linespacing="100%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3310"
|
||||
x="381.06494"
|
||||
y="472.18738">Storage Backend(s)</tspan></text>
|
||||
x="300"
|
||||
y="480">Storage Backend(s)</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="100%"
|
||||
id="text3312"
|
||||
y="422.02664"
|
||||
x="280.74353"
|
||||
x="527.5238"
|
||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"
|
||||
xml:space="preserve"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3316"
|
||||
x="280.74353"
|
||||
x="527.5238"
|
||||
y="422.02664">Plugins (Codecs, Effects,...)</tspan></text>
|
||||
<g
|
||||
id="g3318"
|
||||
|
|
@ -538,7 +549,7 @@
|
|||
sodipodi:role="line"
|
||||
id="tspan6303"
|
||||
x="523.375"
|
||||
y="355.89285"></tspan></text>
|
||||
y="355.89285" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:1;color:#000000;fill:#cccccc;fill-opacity:1;fill-rule:evenodd;stroke:#333333;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"
|
||||
|
|
@ -553,11 +564,11 @@
|
|||
sodipodi:role="line"
|
||||
id="tspan6323"
|
||||
x="383.30356"
|
||||
y="214.85713"></tspan><tspan
|
||||
y="214.85713" /><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan6325"
|
||||
x="383.30356"
|
||||
y="232.85713"></tspan></text>
|
||||
y="232.85713" /></text>
|
||||
<g
|
||||
id="g8843">
|
||||
<path
|
||||
|
|
@ -584,20 +595,6 @@
|
|||
d="M 83.995536,360.5893 L 86.125001,343.08037 L 79.500001,343.54113 L 83.995536,360.5893 z "
|
||||
style="color:#000000;fill:#00e800;fill-opacity:0.75;fill-rule:evenodd;stroke:#00ff00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(-0.6256902,0.7800716,0.7800716,0.6256902,147.19486,107.67292)"
|
||||
id="g8855">
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
style="fill:#00e800;fill-opacity:0.75;fill-rule:evenodd;stroke:#00ff00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 80.911116,238.23155 L 83.28125,354.90625 L 80.911116,238.23155 z "
|
||||
id="path8857" />
|
||||
<path
|
||||
style="color:#000000;fill:#00e800;fill-opacity:0.75;fill-rule:evenodd;stroke:#00ff00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
d="M 83.995536,360.5893 L 86.125001,343.08037 L 79.500001,343.54113 L 83.995536,360.5893 z "
|
||||
id="path8859"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"
|
||||
|
|
@ -779,5 +776,106 @@
|
|||
id="tspan14759"
|
||||
x="243.81104"
|
||||
y="292.75879">(re)-Building</tspan></text>
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect2288"
|
||||
width="80.071442"
|
||||
height="60.065418"
|
||||
x="409.92859"
|
||||
y="390" />
|
||||
<text
|
||||
sodipodi:linespacing="100%"
|
||||
id="text2290"
|
||||
y="410.04694"
|
||||
x="414.28015"
|
||||
style="font-size:10.00114441px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"
|
||||
xml:space="preserve"
|
||||
transform="scale(1.0001145,0.9998856)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2294"
|
||||
x="414.28015"
|
||||
y="410.04694"
|
||||
style="stroke-width:1">Plugin Loader</tspan></text>
|
||||
<rect
|
||||
y="390"
|
||||
x="350.2843"
|
||||
height="60.065418"
|
||||
width="49.715698"
|
||||
id="rect2296"
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<g
|
||||
transform="matrix(-0.6256902,0.7800716,0.7800716,0.6256902,201.26971,137.82439)"
|
||||
id="g8855">
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
style="fill:#00e800;fill-opacity:0.75;fill-rule:evenodd;stroke:#00ff00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 80.335451,191.0022 L 83.28125,354.90625 L 80.335451,191.0022 z "
|
||||
id="path8857" />
|
||||
<path
|
||||
style="color:#000000;fill:#00e800;fill-opacity:0.75;fill-rule:evenodd;stroke:#00ff00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
d="M 83.995536,360.5893 L 86.125001,343.08037 L 79.500001,343.54113 L 83.995536,360.5893 z "
|
||||
id="path8859"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"
|
||||
x="352.10049"
|
||||
y="410"
|
||||
id="text2298"
|
||||
sodipodi:linespacing="100%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2302"
|
||||
x="352.10049"
|
||||
y="410">Serializer</tspan></text>
|
||||
<g
|
||||
id="g2304"
|
||||
transform="matrix(-0.6256902,0.7800716,0.7800716,0.6256902,321.26971,197.82439)" />
|
||||
<g
|
||||
id="g2310"
|
||||
transform="matrix(2.2113858e-2,0.9997554,0.9997554,-2.2113858e-2,160.03746,354.11646)">
|
||||
<path
|
||||
id="path2312"
|
||||
d="M 82.05604,278.21602 L 83.28125,354.90625 L 82.05604,278.21602 z "
|
||||
style="fill:#00e800;fill-opacity:0.75;fill-rule:evenodd;stroke:#00ff00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path2314"
|
||||
d="M 83.995536,360.5893 L 86.125001,343.08037 L 79.500001,343.54113 L 83.995536,360.5893 z "
|
||||
style="color:#000000;fill:#00e800;fill-opacity:0.75;fill-rule:evenodd;stroke:#00ff00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
</g>
|
||||
<rect
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="rect2324"
|
||||
width="50.0009"
|
||||
height="60.065418"
|
||||
x="290"
|
||||
y="390" />
|
||||
<text
|
||||
sodipodi:linespacing="100%"
|
||||
id="text2326"
|
||||
y="410"
|
||||
x="295.16116"
|
||||
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans"
|
||||
xml:space="preserve"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2328"
|
||||
x="295.16116"
|
||||
y="410">Defaults</tspan></text>
|
||||
<g
|
||||
transform="matrix(0.6256902,0.7800716,-0.7800716,0.6256902,438.73029,137.82439)"
|
||||
id="g2330">
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
style="fill:#00e800;fill-opacity:0.75;fill-rule:evenodd;stroke:#00ff00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 80.911116,238.23155 L 83.28125,354.90625 L 80.911116,238.23155 z "
|
||||
id="path2332" />
|
||||
<path
|
||||
style="color:#000000;fill:#00e800;fill-opacity:0.75;fill-rule:evenodd;stroke:#00ff00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
d="M 83.995536,360.5893 L 86.125001,343.08037 L 79.500001,343.54113 L 83.995536,360.5893 z "
|
||||
id="path2334"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 58 KiB |
118
doc/devel/draw/LumiLogo.svg
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://web.resource.org/cc/"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="100"
|
||||
height="100"
|
||||
id="svg2676"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.45.1"
|
||||
version="1.0"
|
||||
sodipodi:docbase="/mnt/Lager/heim/devel/lumi/doc/devel/draw"
|
||||
sodipodi:docname="LumiLogo.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
inkscape:export-filename="/mnt/Lager/heim/devel/lumi/doc/devel/draw/LumiLogo32.png"
|
||||
inkscape:export-xdpi="57.310001"
|
||||
inkscape:export-ydpi="57.310001">
|
||||
<defs
|
||||
id="defs2678">
|
||||
<linearGradient
|
||||
id="linearGradient11428">
|
||||
<stop
|
||||
offset="0"
|
||||
style="stop-color:#eed98e;stop-opacity:1;"
|
||||
id="stop11430" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#553163;stop-opacity:1;"
|
||||
id="stop11432" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient11549"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
inkscape:collect="always"
|
||||
x1="50.468533"
|
||||
y1="46.267605"
|
||||
xlink:href="#linearGradient11428"
|
||||
gradientTransform="matrix(2.0887729,0,0,2.0886777,-60.313318,-60.306023)"
|
||||
x2="64.260468"
|
||||
y2="68.541466" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="8"
|
||||
inkscape:cx="77.291306"
|
||||
inkscape:cy="36.924563"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="svg2676"
|
||||
width="100px"
|
||||
height="100px"
|
||||
inkscape:window-width="1179"
|
||||
inkscape:window-height="918"
|
||||
inkscape:window-x="365"
|
||||
inkscape:window-y="25" />
|
||||
<metadata
|
||||
id="metadata2681">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title>Lumiera Logo</dc:title>
|
||||
<dc:date>8/2008</dc:date>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Lumiera.org</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/2.5/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="LumiLogo"
|
||||
inkscape:groupmode="layer"
|
||||
id="lay_Logo"
|
||||
inkscape:export-filename="/mnt/Lager/heim/devel/lumi/doc/devel/draw/LumiLogo.png"
|
||||
inkscape:export-xdpi="114.62687"
|
||||
inkscape:export-ydpi="114.62687">
|
||||
<g
|
||||
style="opacity:1;color:#000000;fill:#951616;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient11549);stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||
id="g_LumiLogo"
|
||||
transform="matrix(0.5,0,0,0.5,30,30)">
|
||||
<path
|
||||
id="LumieraLogo"
|
||||
sodipodi:nodetypes="ccccccccccccscsssccsccscsssccccsssc"
|
||||
d="M 0,11.48771 L 0,88.512258 C 0,94.876459 5.12376,100.00587 11.488252,99.999984 L 88.511753,99.999984 C 94.876244,99.999984 100,94.876455 100,88.512258 L 100,11.492269 C 100,5.1280689 94.876244,-1.6079329e-05 88.511753,-1.6079329e-05 L 11.488252,-1.6079329e-05 C 5.6951387,-1.6079329e-05 0,5.5258281 0,11.48771 z M 21.148826,0.26562719 C 29.955201,0.26562719 42.558748,6.0632763 42.558748,35.120436 L 42.558748,77.024531 C 42.558748,87.851217 43.097639,96.997511 50.065277,96.997511 C 52.34862,96.997511 53.64308,95.484552 54.047,94.908832 C 49.700804,94.769736 46.214101,91.194803 46.214101,86.815208 C 46.214101,82.347527 49.840211,78.721581 54.308096,78.721581 C 58.775981,78.721581 62.402092,82.347527 62.402092,86.815208 C 62.402092,88.437921 61.919927,89.921159 61.096608,91.188377 C 61.096608,91.188377 61.031334,91.318919 61.031334,91.318919 C 58.08739,95.518358 54.965657,99.738901 47.519584,99.738901 C 38.713208,99.738901 26.109662,93.941251 26.109662,64.884092 L 26.109662,22.979996 C 26.109662,12.15331 25.57077,3.0070164 18.603134,3.0070164 C 16.319793,3.0070164 15.025331,4.5199752 14.62141,5.0956943 C 18.967606,5.2347913 22.454309,8.8097247 22.454309,13.189319 C 22.454309,17.657001 18.828199,21.282945 14.360314,21.282945 C 9.892429,21.282945 6.2663188,17.657001 6.2663188,13.189319 C 6.2663188,11.566604 6.7484827,10.083368 7.5718019,8.8161505 C 7.5718019,8.8161505 7.6370761,8.6856087 7.6370761,8.6856087 C 10.58102,4.4861692 13.702754,0.26562719 21.148826,0.26562719 z M 75.456921,18.280472 C 79.924808,18.280472 83.550918,21.906416 83.550918,26.374097 C 83.550918,30.841779 79.924808,34.467725 75.456921,34.467725 C 70.989037,34.467725 67.362928,30.841779 67.362928,26.374097 C 67.362928,21.906416 70.989037,18.280472 75.456921,18.280472 z " />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.8 KiB |
3045
doc/devel/draw/high-level-model.svg
Normal file
|
After Width: | Height: | Size: 153 KiB |
|
|
@ -16,7 +16,7 @@
|
|||
<!-- ============================================================= -->
|
||||
|
||||
<a name="refclass132741"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : class State </li><li>Java : public interface State </li></ul><p>Directly inherited by : <a href="class143493.html#refclass143493"><b>InvocationStateBase</b></a> <a href="class142597.html#refclass142597"><b>StateAdapter</b></a> <a href="class142469.html#refclass142469"><b>StateProxy</b></a> </p>
|
||||
<p>Declaration :</p><ul><li>C++ : class State </li><li>Java : public interface State </li></ul><p>Directly inherited by : <a href="class142597.html#refclass142597"><b>StateAdapter</b></a> <a href="class142469.html#refclass142469"><b>StateProxy</b></a> </p>
|
||||
<p>Artifact : <a href="index.html#refartifact130949"><b>stateproxy</b></a>, Component(s) : <a href="index.html#refcomponent128005"><b>Builder</b></a></p><div class="sub">
|
||||
<a name="refrelation135941"></a>
|
||||
<table><tr><td><div class="element">Relation <b>currFrame (<unidirectional association>)</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # currFrame : <a href="class133253.html#refclass133253"><b>Frame</b></a></li><li>C++ : protected: <a href="class133253.html#refclass133253"><b>Frame</b></a> * currFrame</li></ul><a name="refoperation135813"></a>
|
||||
|
|
|
|||
|
|
@ -16,9 +16,8 @@
|
|||
<!-- ============================================================= -->
|
||||
|
||||
<a name="refclass142469"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : template<class WIRING, class POLICY> class StateProxy : public <a href="class132741.html#refclass132741"><b>State</b></a>, public <a href="class143877.html#refclass143877"><b>InPlace</b></a> </li></ul><div class="sub">
|
||||
<a name="refrelation154117"></a>
|
||||
<table><tr><td><div class="element">Relation <b>wiring (<unidirectional association>)</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # wiring : <a href="class144005.html#refclass144005"><b>WiringTable</b></a>, multiplicity : 1</li><li>C++ : protected: const <a href="class144005.html#refclass144005"><b>WiringTable</b></a>* wiring</li></ul></div>
|
||||
<p>Declaration :</p><ul><li>C++ : class StateProxy : public <a href="class132741.html#refclass132741"><b>State</b></a> </li></ul><div class="sub">
|
||||
</div>
|
||||
<p>All public operations : <a href="class132741.html#refoperation135941"><b>allocateBuffer</b></a> , <a href="class132741.html#refoperation135813"><b>fetch</b></a> , <a href="class132741.html#refoperation136325"><b>isCalculated</b></a> , <a href="class132741.html#refoperation136197"><b>releaseBuffer</b></a> </p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -17,5 +17,9 @@
|
|||
|
||||
<a name="refclass142725"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : class WiringDescriptor </li></ul><p>Directly inherited by : <a href="class143365.html#refclass143365"><b>NodeWiring</b></a> </p>
|
||||
<div class="sub">
|
||||
<a name="refoperation136453"></a>
|
||||
<table><tr><td><div class="element">Operation <b>callDown</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : + callDown(inout : <a href="class132741.html#refclass132741"><b>State</b></a>, in requiredOutput : uint) : , exceptions : <a href="class144133.html#refclass144133"><b>BuffHandle</b></a></li><li>C++ : public: virtual callDown () throw (<a href="class144133.html#refclass144133"><b>BuffHandle</b></a>)</li></ul></div>
|
||||
<p>All public operations : <a href="class142725.html#refoperation136453"><b>callDown</b></a> </p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,13 @@
|
|||
<!-- ============================================================= -->
|
||||
|
||||
<a name="refclass143365"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : template<class STATE> class NodeWiring : public <a href="class142725.html#refclass142725"><b>WiringDescriptor</b></a> </li></ul><div class="sub">
|
||||
</div>
|
||||
<p>Declaration :</p><ul><li>C++ : template<class CONF> class NodeWiring : public <a href="class142725.html#refclass142725"><b>WiringDescriptor</b></a> </li></ul><div class="sub">
|
||||
<a name="refrelation156165"></a>
|
||||
<table><tr><td><div class="element">Relation <b><association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class144517.html#refclass144517"><b>Strategy</b></a></li><li>C++ : protected: <a href="class144517.html#refclass144517"><b>Strategy</b></a>* </li></ul><a name="refrelation156421"></a>
|
||||
<table><tr><td><div class="element">Relation <b><association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class144517.html#refclass144517"><b>Strategy</b></a></li><li>C++ : protected: <a href="class144517.html#refclass144517"><b>Strategy</b></a>* </li></ul><a name="refrelation156677"></a>
|
||||
<table><tr><td><div class="element">Relation <b><association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class144517.html#refclass144517"><b>Strategy</b></a></li><li>C++ : protected: <a href="class144517.html#refclass144517"><b>Strategy</b></a>* </li></ul><a name="refrelation156933"></a>
|
||||
<table><tr><td><div class="element">Relation <b><unidirectional association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class144261.html#refclass144261"><b>Invocation</b></a></li><li>C++ : protected: <a href="class144261.html#refclass144261"><b>Invocation</b></a>* </li></ul><a name="refoperation136581"></a>
|
||||
<table><tr><td><div class="element">Operation <b>callDown</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : + callDown() : </li><li>C++ : public: callDown () </li></ul></div>
|
||||
<p>All public operations : <a href="class143365.html#refoperation136581"><b>callDown</b></a> , <a href="class142725.html#refoperation136453"><b>callDown</b></a> </p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -4,21 +4,18 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<title>Class InvocationStateBase</title>
|
||||
<title>Class OperationBase</title>
|
||||
<link rel="stylesheet" href="style.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
<div class = "title">Class InvocationStateBase</div>
|
||||
<div class = "title">Class OperationBase</div>
|
||||
<p></p>
|
||||
|
||||
<!-- ============================================================= -->
|
||||
|
||||
<a name="refclass143493"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : class InvocationStateBase : public <a href="class132741.html#refclass132741"><b>State</b></a> </li></ul><p>Directly inherited by : <a href="class143621.html#refclass143621"><b>Caching</b></a> </p>
|
||||
<div class="sub">
|
||||
</div>
|
||||
<p>All public operations : <a href="class132741.html#refoperation135941"><b>allocateBuffer</b></a> , <a href="class132741.html#refoperation135813"><b>fetch</b></a> , <a href="class132741.html#refoperation136325"><b>isCalculated</b></a> , <a href="class132741.html#refoperation136197"><b>releaseBuffer</b></a> </p>
|
||||
<p>Declaration :</p><ul><li>C++ : class OperationBase </li></ul><p>Directly inherited by : <a href="class144645.html#refclass144645"><b>FeedCache</b></a> <a href="class144389.html#refclass144389"><b>ProcessData</b></a> <a href="class143877.html#refclass143877"><b>ReadSource</b></a> </p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -4,21 +4,20 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<title>Class Caching</title>
|
||||
<title>Class QueryCache</title>
|
||||
<link rel="stylesheet" href="style.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
<div class = "title">Class Caching</div>
|
||||
<div class = "title">Class QueryCache</div>
|
||||
<p></p>
|
||||
|
||||
<!-- ============================================================= -->
|
||||
|
||||
<a name="refclass143621"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : class Caching : public <a href="class143493.html#refclass143493"><b>InvocationStateBase</b></a> </li></ul><p>Directly inherited by : <a href="class143749.html#refclass143749"><b>Process</b></a> </p>
|
||||
<p>Declaration :</p><ul><li>C++ : class QueryCache : public <a href="class143749.html#refclass143749"><b>PullInput</b></a> </li></ul><p>Directly inherited by : <a href="class144517.html#refclass144517"><b>Strategy</b></a> </p>
|
||||
<div class="sub">
|
||||
</div>
|
||||
<p>All public operations : <a href="class132741.html#refoperation135941"><b>allocateBuffer</b></a> , <a href="class132741.html#refoperation135813"><b>fetch</b></a> , <a href="class132741.html#refoperation136325"><b>isCalculated</b></a> , <a href="class132741.html#refoperation136197"><b>releaseBuffer</b></a> </p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -4,21 +4,21 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<title>Class Process</title>
|
||||
<title>Class PullInput</title>
|
||||
<link rel="stylesheet" href="style.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
<div class = "title">Class Process</div>
|
||||
<div class = "title">Class PullInput</div>
|
||||
<p></p>
|
||||
|
||||
<!-- ============================================================= -->
|
||||
|
||||
<a name="refclass143749"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : class Process : public <a href="class143621.html#refclass143621"><b>Caching</b></a> </li></ul><p>Directly inherited by : <a href="class143877.html#refclass143877"><b>InPlace</b></a> </p>
|
||||
<p>Declaration :</p><ul><li>C++ : class PullInput : public <a href="class144389.html#refclass144389"><b>ProcessData</b></a> </li></ul><p>Directly inherited by : <a href="class143621.html#refclass143621"><b>QueryCache</b></a> <a href="class144517.html#refclass144517"><b>Strategy</b></a> </p>
|
||||
<div class="sub">
|
||||
</div>
|
||||
<p>All public operations : <a href="class132741.html#refoperation135941"><b>allocateBuffer</b></a> , <a href="class132741.html#refoperation135813"><b>fetch</b></a> , <a href="class132741.html#refoperation136325"><b>isCalculated</b></a> , <a href="class132741.html#refoperation136197"><b>releaseBuffer</b></a> </p>
|
||||
<a name="refrelation158085"></a>
|
||||
<table><tr><td><div class="element">Relation <b><association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class144389.html#refclass144389"><b>ProcessData</b></a></li><li>C++ : protected: <a href="class144389.html#refclass144389"><b>ProcessData</b></a>* </li></ul></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -4,21 +4,20 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<title>Class InPlace</title>
|
||||
<title>Class ReadSource</title>
|
||||
<link rel="stylesheet" href="style.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
<div class = "title">Class InPlace</div>
|
||||
<div class = "title">Class ReadSource</div>
|
||||
<p></p>
|
||||
|
||||
<!-- ============================================================= -->
|
||||
|
||||
<a name="refclass143877"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : class InPlace : public <a href="class143749.html#refclass143749"><b>Process</b></a> </li></ul><p>Directly inherited by : <a href="class142469.html#refclass142469"><b>StateProxy</b></a> </p>
|
||||
<p>Declaration :</p><ul><li>C++ : class ReadSource : public <a href="class143493.html#refclass143493"><b>OperationBase</b></a> </li></ul><p>Directly inherited by : <a href="class144517.html#refclass144517"><b>Strategy</b></a> </p>
|
||||
<div class="sub">
|
||||
</div>
|
||||
<p>All public operations : <a href="class132741.html#refoperation135941"><b>allocateBuffer</b></a> , <a href="class132741.html#refoperation135813"><b>fetch</b></a> , <a href="class132741.html#refoperation136325"><b>isCalculated</b></a> , <a href="class132741.html#refoperation136197"><b>releaseBuffer</b></a> </p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -4,19 +4,19 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<title>Class WiringTable</title>
|
||||
<title>Class BuffTable</title>
|
||||
<link rel="stylesheet" href="style.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
<div class = "title">Class WiringTable</div>
|
||||
<div class = "title">Class BuffTable</div>
|
||||
<p></p>
|
||||
|
||||
<!-- ============================================================= -->
|
||||
|
||||
<a name="refclass144005"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : template<int SIZ> class WiringTable </li></ul><div class="sub">
|
||||
<p>Declaration :</p><ul><li>C++ : template<int SIZ> class BuffTable </li></ul><div class="sub">
|
||||
<a name="refrelation153861"></a>
|
||||
<table><tr><td><div class="element">Relation <b><directional aggregation by value></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class144133.html#refclass144133"><b>BuffHandle</b></a>, multiplicity : SIZ</li><li>C++ : protected: <a href="class144133.html#refclass144133"><b>BuffHandle</b></a> </li></ul><a name="refrelation153989"></a>
|
||||
<table><tr><td><div class="element">Relation <b><unidirectional association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class142725.html#refclass142725"><b>WiringDescriptor</b></a></li><li>C++ : protected: <a href="class142725.html#refclass142725"><b>WiringDescriptor</b></a>* </li></ul></div>
|
||||
|
|
|
|||
25
doc/devel/uml/class144261.html
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<title>Class Invocation</title>
|
||||
<link rel="stylesheet" href="style.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
<div class = "title">Class Invocation</div>
|
||||
<p></p>
|
||||
|
||||
<!-- ============================================================= -->
|
||||
|
||||
<a name="refclass144261"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : class Invocation </li></ul><div class="sub">
|
||||
<a name="refrelation155781"></a>
|
||||
<table><tr><td><div class="element">Relation <b><unidirectional association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class142597.html#refclass142597"><b>StateAdapter</b></a></li><li>C++ : protected: <a href="class142597.html#refclass142597"><b>StateAdapter</b></a>* </li></ul><a name="refrelation155909"></a>
|
||||
<table><tr><td><div class="element">Relation <b><unidirectional association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class142725.html#refclass142725"><b>WiringDescriptor</b></a></li><li>C++ : protected: <a href="class142725.html#refclass142725"><b>WiringDescriptor</b></a>* </li></ul><a name="refrelation156037"></a>
|
||||
<table><tr><td><div class="element">Relation <b><unidirectional association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class144005.html#refclass144005"><b>BuffTable</b></a></li><li>C++ : protected: <a href="class144005.html#refclass144005"><b>BuffTable</b></a>* </li></ul></div>
|
||||
</body>
|
||||
</html>
|
||||
24
doc/devel/uml/class144389.html
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<title>Class ProcessData</title>
|
||||
<link rel="stylesheet" href="style.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
<div class = "title">Class ProcessData</div>
|
||||
<p></p>
|
||||
|
||||
<!-- ============================================================= -->
|
||||
|
||||
<a name="refclass144389"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : class ProcessData : public <a href="class144645.html#refclass144645"><b>FeedCache</b></a>, public <a href="class143493.html#refclass143493"><b>OperationBase</b></a> </li></ul><p>Directly inherited by : <a href="class143749.html#refclass143749"><b>PullInput</b></a> </p>
|
||||
<div class="sub">
|
||||
<a name="refrelation158213"></a>
|
||||
<table><tr><td><div class="element">Relation <b><association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class143749.html#refclass143749"><b>PullInput</b></a></li><li>C++ : protected: <a href="class143749.html#refclass143749"><b>PullInput</b></a>* </li></ul></div>
|
||||
</body>
|
||||
</html>
|
||||
25
doc/devel/uml/class144517.html
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<title>Class Strategy</title>
|
||||
<link rel="stylesheet" href="style.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
<div class = "title">Class Strategy</div>
|
||||
<p></p>
|
||||
|
||||
<!-- ============================================================= -->
|
||||
|
||||
<a name="refclass144517"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : template<class CONF> class Strategy : public <a href="class143877.html#refclass143877"><b>ReadSource</b></a>, public <a href="class143621.html#refclass143621"><b>QueryCache</b></a>, public <a href="class143749.html#refclass143749"><b>PullInput</b></a> </li></ul><div class="sub">
|
||||
<a name="refrelation156293"></a>
|
||||
<table><tr><td><div class="element">Relation <b><association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class143365.html#refclass143365"><b>NodeWiring</b></a></li><li>C++ : protected: <a href="class143365.html#refclass143365"><b>NodeWiring</b></a>* </li></ul><a name="refrelation156549"></a>
|
||||
<table><tr><td><div class="element">Relation <b><association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class143365.html#refclass143365"><b>NodeWiring</b></a></li><li>C++ : protected: <a href="class143365.html#refclass143365"><b>NodeWiring</b></a>* </li></ul><a name="refrelation156805"></a>
|
||||
<table><tr><td><div class="element">Relation <b><association></b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class143365.html#refclass143365"><b>NodeWiring</b></a></li><li>C++ : protected: <a href="class143365.html#refclass143365"><b>NodeWiring</b></a>* </li></ul></div>
|
||||
</body>
|
||||
</html>
|
||||
23
doc/devel/uml/class144645.html
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<title>Class FeedCache</title>
|
||||
<link rel="stylesheet" href="style.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body bgcolor="#ffffff">
|
||||
|
||||
<div class = "title">Class FeedCache</div>
|
||||
<p></p>
|
||||
|
||||
<!-- ============================================================= -->
|
||||
|
||||
<a name="refclass144645"></a>
|
||||
<p>Declaration :</p><ul><li>C++ : class FeedCache : public <a href="class143493.html#refclass143493"><b>OperationBase</b></a> </li></ul><p>Directly inherited by : <a href="class144389.html#refclass144389"><b>ProcessData</b></a> </p>
|
||||
<div class="sub">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -27,11 +27,11 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class129925.html#refclass129925" target = "projectFrame"><b>Auto</b></a></td><td></td><td>Automation data for some parameter (i.e. a time varying function)</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143109.html#refclass143109" target = "projectFrame"><b>BackendCache</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144133.html#refclass144133" target = "projectFrame"><b>BuffHandle</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144005.html#refclass144005" target = "projectFrame"><b>BuffTable</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134021.html#refclass134021" target = "projectFrame"><b>Buildable</b></a></td><td>interface</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class130565.html#refclass130565" target = "projectFrame"><b>BuilderFacade</b></a></td><td>boundary</td><td>Provides unified access to the builder functionality. While individual components of the builder subsystem may be called if necessary or suitable, it is usually better to do all extern invocations via the high level methods of this Facade</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134149.html#refclass134149" target = "projectFrame"><b>BuilderTool</b></a></td><td>interface</td><td>Used according to the visitor pattern: each Tool contains the concrete implementation for one task to be done to the various MObject classes</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class139013.html#refclass139013" target = "projectFrame"><b>BuildInstruct</b></a></td><td></td><td>(Interface) building instructions to be executed by the Builder on the render node network under construction.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143621.html#refclass143621" target = "projectFrame"><b>Caching</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143237.html#refclass143237" target = "projectFrame"><b>Caller</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class137221.html#refclass137221" target = "projectFrame"><b>Category</b></a></td><td></td><td>tree like classification of Assets</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class137349.html#refclass137349" target = "projectFrame"><b>Clip</b></a></td><td></td><td>bookkeeping (asset) view of a media clip.</td></tr>
|
||||
|
|
@ -60,6 +60,7 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class129797.html#refclass129797" target = "projectFrame"><b>ExplicitPlacement</b></a></td><td>interface</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class136197.html#refclass136197" target = "projectFrame"><b>External</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class135301.html#refclass135301" target = "projectFrame"><b>Factory</b></a></td><td></td><td>a template for generating functor-like Factory objects, used to encapsulate object creation and providing access via smart-pointers only.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144645.html#refclass144645" target = "projectFrame"><b>FeedCache</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class128181.html#refclass128181" target = "projectFrame"><b>File</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class128693.html#refclass128693" target = "projectFrame"><b>FileHandle</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class128309.html#refclass128309" target = "projectFrame"><b>FileHandleCache</b></a></td><td></td><td></td></tr>
|
||||
|
|
@ -74,10 +75,9 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class128949.html#refclass128949" target = "projectFrame"><b>FrameDescriptor</b></a></td><td>interface</td><td>A FrameDescriptor implements the higher level interfaces for frames. Further refinements are made by subclassing and policy classes</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class128225.html#refclass128225" target = "projectFrame"><b>FrameReference</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class133637.html#refclass133637" target = "projectFrame"><b>GLBuf</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143877.html#refclass143877" target = "projectFrame"><b>InPlace</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134789.html#refclass134789" target = "projectFrame"><b>Interpolator</b></a></td><td></td><td>Provides the implementation for getting the acutal value of a time varying or automated effect/plugin parameter</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class136069.html#refclass136069" target = "projectFrame"><b>Invalid</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143493.html#refclass143493" target = "projectFrame"><b>InvocationStateBase</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144261.html#refclass144261" target = "projectFrame"><b>Invocation</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class129669.html#refclass129669" target = "projectFrame"><b>Label</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class131973.html#refclass131973" target = "projectFrame"><b>Link</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class139909.html#refclass139909" target = "projectFrame"><b>LocatingPin</b></a></td><td></td><td>An element with value semantics, which actually implements the placement of some MObject by positioning it in some way.</td></tr>
|
||||
|
|
@ -94,6 +94,7 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class128394.html#refclass128394" target = "projectFrame"><b>Mutex</b></a></td><td></td><td>I provided a reworked Mutex class in my Cinelerra2 repository</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134405.html#refclass134405" target = "projectFrame"><b>NodeCreatorTool</b></a></td><td></td><td>This Tool implementation plays the central role in the buld process: given a MObject from Session, it is able to attach ProcNodes to the render engine under construction such as to reflect the properties of the MObject in the actual render.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143365.html#refclass143365" target = "projectFrame"><b>NodeWiring</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143493.html#refclass143493" target = "projectFrame"><b>OperationBase</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134533.html#refclass134533" target = "projectFrame"><b>Parameter</b></a></td><td></td><td>Descriptor and access object for a plugin parameter. Parameters may be provided with values from the session, and this values may be automated.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134661.html#refclass134661" target = "projectFrame"><b>ParamProvider</b></a></td><td>interface</td><td>A facility to get the actual value of a plugin/effect parameter</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class130437.html#refclass130437" target = "projectFrame"><b>PathManager</b></a></td><td></td><td>While building a render engine, this Strategy class decides on the actual render strategy in accordance to the current controller settings (system state)</td></tr>
|
||||
|
|
@ -105,13 +106,16 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class137605.html#refclass137605" target = "projectFrame"><b>Preview</b></a></td><td></td><td>alternative version of the media data, probably with lower resolution</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class136837.html#refclass136837" target = "projectFrame"><b>Proc</b></a></td><td></td><td>key abstraction: data processing asset</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class141957.html#refclass141957" target = "projectFrame"><b>ProcDispatcher</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143749.html#refclass143749" target = "projectFrame"><b>Process</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144389.html#refclass144389" target = "projectFrame"><b>ProcessData</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class131461.html#refclass131461" target = "projectFrame"><b>Processor</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class131717.html#refclass131717" target = "projectFrame"><b>ProcNode</b></a></td><td>interface</td><td>Key abstraction of the Render Engine: A Data processing Node</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class138757.html#refclass138757" target = "projectFrame"><b>ProcPatt</b></a></td><td></td><td>special type of structural Asset representing information how to build some part of the render engine's processing nodes network.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class132229.html#refclass132229" target = "projectFrame"><b>Projector</b></a></td><td></td><td>Special video processing node used to scale and translate image data.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143749.html#refclass143749" target = "projectFrame"><b>PullInput</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143621.html#refclass143621" target = "projectFrame"><b>QueryCache</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class140677.html#refclass140677" target = "projectFrame"><b>QueryHandler</b></a></td><td>interface</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class141189.html#refclass141189" target = "projectFrame"><b>QueryHandlerImpl</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143877.html#refclass143877" target = "projectFrame"><b>ReadSource</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class129413.html#refclass129413" target = "projectFrame"><b>RelativeLocation</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class133893.html#refclass133893" target = "projectFrame"><b>RelType</b></a></td><td>enum</td><td>the possible kinds of RelativePlacements</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class131333.html#refclass131333" target = "projectFrame"><b>RenderEngine</b></a></td><td></td><td></td></tr>
|
||||
|
|
@ -132,6 +136,7 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class142597.html#refclass142597" target = "projectFrame"><b>StateAdapter</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class142469.html#refclass142469" target = "projectFrame"><b>StateProxy</b></a></td><td>implementation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class136325.html#refclass136325" target = "projectFrame"><b>std::exception</b></a></td><td>auxiliary</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144517.html#refclass144517" target = "projectFrame"><b>Strategy</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class136965.html#refclass136965" target = "projectFrame"><b>Struct</b></a></td><td></td><td>key abstraction: structural asset</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class128138.html#refclass128138" target = "projectFrame"><b>Thread</b></a></td><td></td><td>We can basically reuse the Thread class design from Cinelerra2, Thread becomes a baseclass for all Threads </td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134917.html#refclass134917" target = "projectFrame"><b>Time</b></a></td><td></td><td>denotes a temporal position (time point), based on timeline start.<br /><br />investigate posix.4 realtime timers, wrap these here</td></tr>
|
||||
|
|
@ -147,7 +152,6 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class133509.html#refclass133509" target = "projectFrame"><b>VFrame</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class140165.html#refclass140165" target = "projectFrame"><b>Visitable</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class142725.html#refclass142725" target = "projectFrame"><b>WiringDescriptor</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144005.html#refclass144005" target = "projectFrame"><b>WiringTable</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class130053.html#refclass130053" target = "projectFrame"><b>Wish</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class129162.html#refclass129162" target = "projectFrame"><b>WriteBuffer</b></a></td><td></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class129034.html#refclass129034" target = "projectFrame"><b>WriteBufferPool</b></a></td><td></td><td></td></tr>
|
||||
|
|
|
|||
|
|
@ -28,11 +28,11 @@
|
|||
<a href="class129925.html#refclass129925" target = "projectFrame"><b>Auto</b></a><br />
|
||||
<a href="class143109.html#refclass143109" target = "projectFrame"><b>BackendCache</b></a><br />
|
||||
<a href="class144133.html#refclass144133" target = "projectFrame"><b>BuffHandle</b></a><br />
|
||||
<a href="class144005.html#refclass144005" target = "projectFrame"><b>BuffTable</b></a><br />
|
||||
<a href="class134021.html#refclass134021" target = "projectFrame"><b>Buildable</b></a><br />
|
||||
<a href="class130565.html#refclass130565" target = "projectFrame"><b>BuilderFacade</b></a><br />
|
||||
<a href="class134149.html#refclass134149" target = "projectFrame"><b>BuilderTool</b></a><br />
|
||||
<a href="class139013.html#refclass139013" target = "projectFrame"><b>BuildInstruct</b></a><br />
|
||||
<a href="class143621.html#refclass143621" target = "projectFrame"><b>Caching</b></a><br />
|
||||
<a href="class143237.html#refclass143237" target = "projectFrame"><b>Caller</b></a><br />
|
||||
<a href="class137221.html#refclass137221" target = "projectFrame"><b>Category</b></a><br />
|
||||
<a href="class137349.html#refclass137349" target = "projectFrame"><b>Clip</b></a><br />
|
||||
|
|
@ -61,6 +61,7 @@
|
|||
<a href="class129797.html#refclass129797" target = "projectFrame"><b>ExplicitPlacement</b></a><br />
|
||||
<a href="class136197.html#refclass136197" target = "projectFrame"><b>External</b></a><br />
|
||||
<a href="class135301.html#refclass135301" target = "projectFrame"><b>Factory</b></a><br />
|
||||
<a href="class144645.html#refclass144645" target = "projectFrame"><b>FeedCache</b></a><br />
|
||||
<a href="class128181.html#refclass128181" target = "projectFrame"><b>File</b></a><br />
|
||||
<a href="class128693.html#refclass128693" target = "projectFrame"><b>FileHandle</b></a><br />
|
||||
<a href="class128309.html#refclass128309" target = "projectFrame"><b>FileHandleCache</b></a><br />
|
||||
|
|
@ -75,10 +76,9 @@
|
|||
<a href="class128949.html#refclass128949" target = "projectFrame"><b>FrameDescriptor</b></a><br />
|
||||
<a href="class128225.html#refclass128225" target = "projectFrame"><b>FrameReference</b></a><br />
|
||||
<a href="class133637.html#refclass133637" target = "projectFrame"><b>GLBuf</b></a><br />
|
||||
<a href="class143877.html#refclass143877" target = "projectFrame"><b>InPlace</b></a><br />
|
||||
<a href="class134789.html#refclass134789" target = "projectFrame"><b>Interpolator</b></a><br />
|
||||
<a href="class136069.html#refclass136069" target = "projectFrame"><b>Invalid</b></a><br />
|
||||
<a href="class143493.html#refclass143493" target = "projectFrame"><b>InvocationStateBase</b></a><br />
|
||||
<a href="class144261.html#refclass144261" target = "projectFrame"><b>Invocation</b></a><br />
|
||||
<a href="class129669.html#refclass129669" target = "projectFrame"><b>Label</b></a><br />
|
||||
<a href="class131973.html#refclass131973" target = "projectFrame"><b>Link</b></a><br />
|
||||
<a href="class139909.html#refclass139909" target = "projectFrame"><b>LocatingPin</b></a><br />
|
||||
|
|
@ -95,6 +95,7 @@
|
|||
<a href="class128394.html#refclass128394" target = "projectFrame"><b>Mutex</b></a><br />
|
||||
<a href="class134405.html#refclass134405" target = "projectFrame"><b>NodeCreatorTool</b></a><br />
|
||||
<a href="class143365.html#refclass143365" target = "projectFrame"><b>NodeWiring</b></a><br />
|
||||
<a href="class143493.html#refclass143493" target = "projectFrame"><b>OperationBase</b></a><br />
|
||||
<a href="class134533.html#refclass134533" target = "projectFrame"><b>Parameter</b></a><br />
|
||||
<a href="class134661.html#refclass134661" target = "projectFrame"><b>ParamProvider</b></a><br />
|
||||
<a href="class130437.html#refclass130437" target = "projectFrame"><b>PathManager</b></a><br />
|
||||
|
|
@ -106,13 +107,16 @@
|
|||
<a href="class137605.html#refclass137605" target = "projectFrame"><b>Preview</b></a><br />
|
||||
<a href="class136837.html#refclass136837" target = "projectFrame"><b>Proc</b></a><br />
|
||||
<a href="class141957.html#refclass141957" target = "projectFrame"><b>ProcDispatcher</b></a><br />
|
||||
<a href="class143749.html#refclass143749" target = "projectFrame"><b>Process</b></a><br />
|
||||
<a href="class144389.html#refclass144389" target = "projectFrame"><b>ProcessData</b></a><br />
|
||||
<a href="class131461.html#refclass131461" target = "projectFrame"><b>Processor</b></a><br />
|
||||
<a href="class131717.html#refclass131717" target = "projectFrame"><b>ProcNode</b></a><br />
|
||||
<a href="class138757.html#refclass138757" target = "projectFrame"><b>ProcPatt</b></a><br />
|
||||
<a href="class132229.html#refclass132229" target = "projectFrame"><b>Projector</b></a><br />
|
||||
<a href="class143749.html#refclass143749" target = "projectFrame"><b>PullInput</b></a><br />
|
||||
<a href="class143621.html#refclass143621" target = "projectFrame"><b>QueryCache</b></a><br />
|
||||
<a href="class140677.html#refclass140677" target = "projectFrame"><b>QueryHandler</b></a><br />
|
||||
<a href="class141189.html#refclass141189" target = "projectFrame"><b>QueryHandlerImpl</b></a><br />
|
||||
<a href="class143877.html#refclass143877" target = "projectFrame"><b>ReadSource</b></a><br />
|
||||
<a href="class129413.html#refclass129413" target = "projectFrame"><b>RelativeLocation</b></a><br />
|
||||
<a href="class133893.html#refclass133893" target = "projectFrame"><b>RelType</b></a><br />
|
||||
<a href="class131333.html#refclass131333" target = "projectFrame"><b>RenderEngine</b></a><br />
|
||||
|
|
@ -133,6 +137,7 @@
|
|||
<a href="class142597.html#refclass142597" target = "projectFrame"><b>StateAdapter</b></a><br />
|
||||
<a href="class142469.html#refclass142469" target = "projectFrame"><b>StateProxy</b></a><br />
|
||||
<a href="class136325.html#refclass136325" target = "projectFrame"><b>std::exception</b></a><br />
|
||||
<a href="class144517.html#refclass144517" target = "projectFrame"><b>Strategy</b></a><br />
|
||||
<a href="class136965.html#refclass136965" target = "projectFrame"><b>Struct</b></a><br />
|
||||
<a href="class128138.html#refclass128138" target = "projectFrame"><b>Thread</b></a><br />
|
||||
<a href="class134917.html#refclass134917" target = "projectFrame"><b>Time</b></a><br />
|
||||
|
|
@ -148,7 +153,6 @@
|
|||
<a href="class133509.html#refclass133509" target = "projectFrame"><b>VFrame</b></a><br />
|
||||
<a href="class140165.html#refclass140165" target = "projectFrame"><b>Visitable</b></a><br />
|
||||
<a href="class142725.html#refclass142725" target = "projectFrame"><b>WiringDescriptor</b></a><br />
|
||||
<a href="class144005.html#refclass144005" target = "projectFrame"><b>WiringTable</b></a><br />
|
||||
<a href="class130053.html#refclass130053" target = "projectFrame"><b>Wish</b></a><br />
|
||||
<a href="class129162.html#refclass129162" target = "projectFrame"><b>WriteBuffer</b></a><br />
|
||||
<a href="class129034.html#refclass129034" target = "projectFrame"><b>WriteBufferPool</b></a><br />
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 25 KiB |
|
|
@ -116,7 +116,7 @@ Documentation</title>
|
|||
<a name="refartifact128005"></a>
|
||||
<table><tr><td><div class="element">Artifact <b>Lumiera</b></div></td></tr></table>
|
||||
<p>Depends on <a href="index.html#refpackage129413"><b>common</b></a></p><p>Depends on <a href="index.html#refpackage129797"><b>gui</b></a></p><p>Depends on <a href="index.html#refpackage129669"><b>proc</b></a></p><p>Depends on <a href="index.html#refpackage129541"><b>backend</b></a></p><p>the main executable to be built<br /></p>
|
||||
<p><i>executable</i> associated with : <a href="index.html#refartifact128261"><b>mobject</b></a>, <a href="index.html#refartifact134277"><b>source</b></a>, <a href="index.html#refartifact133765"><b>frame</b></a>, <a href="index.html#refartifact129029"><b>placement</b></a>, <a href="index.html#refartifact128517"><b>sessionimpl</b></a>, <a href="index.html#refartifact130437"><b>builderfacade</b></a>, <a href="index.html#refartifact131589"><b>controllerfacade</b></a>, <a href="index.html#refartifact132101"><b>processor</b></a>, <a href="index.html#refartifact133125"><b>pluginadapter</b></a>, <a href="index.html#refartifact129541"><b>effect</b></a>, <a href="index.html#refartifact131205"><b>buildertool</b></a>, <a href="index.html#refartifact131333"><b>segmentationtool</b></a>, <a href="index.html#refartifact133893"><b>aframe</b></a>, <a href="index.html#refartifact130821"><b>assembler</b></a>, <a href="index.html#refartifact132485"><b>trafo</b></a>, <a href="index.html#refartifact129157"><b>explicitplacement</b></a>, <a href="index.html#refartifact130309"><b>auto</b></a>, <a href="index.html#refartifact133637"><b>glrender</b></a>, <a href="index.html#refartifact132613"><b>link</b></a>, <a href="index.html#refartifact134405"><b>parameter</b></a>, <a href="index.html#refartifact131973"><b>renderengine</b></a>, <a href="index.html#refartifact130053"><b>allocation</b></a>, <a href="index.html#refartifact134021"><b>vframe</b></a>, <a href="index.html#refartifact130565"><b>toolfactory</b></a>, <a href="index.html#refartifact133381"><b>arender</b></a>, <a href="index.html#refartifact131845"><b>renderstate</b></a>, <a href="index.html#refartifact130181"><b>label</b></a>, <a href="index.html#refartifact134149"><b>glbuf</b></a>, <a href="index.html#refartifact132357"><b>procnode</b></a>, <a href="index.html#refartifact130949"><b>stateproxy</b></a>, <a href="index.html#refartifact132741"><b>hub</b></a>, <a href="index.html#refartifact131077"><b>buildable</b></a>, <a href="index.html#refartifact129285"><b>abstractmo</b></a>, <a href="index.html#refartifact131461"><b>nodecreatertool</b></a>, <a href="index.html#refartifact132869"><b>projector</b></a>, <a href="index.html#refartifact134661"><b>interpolator</b></a>, <a href="index.html#refartifact128645"><b>edl</b></a>, <a href="index.html#refartifact128773"><b>fixture</b></a>, <a href="index.html#refartifact133253"><b>glpipe</b></a>, <a href="index.html#refartifact133509"><b>vrender</b></a>, <a href="index.html#refartifact132229"><b>exitnode</b></a>, <a href="index.html#refartifact131717"><b>pathmanager</b></a>, <a href="index.html#refartifact128901"><b>track</b></a>, <a href="index.html#refartifact134533"><b>paramprovider</b></a>, <a href="index.html#refartifact132997"><b>mask</b></a>, <a href="index.html#refartifact128133"><b>main</b></a>, <a href="index.html#refartifact130693"><b>conmanager</b></a>, <a href="index.html#refartifact129413"><b>clip</b></a>, <a href="index.html#refartifact129669"><b>meta</b></a>, <a href="index.html#refartifact129797"><b>fixedlocation</b></a>, <a href="index.html#refartifact129925"><b>relativelocation</b></a></p>
|
||||
<p><i>executable</i> associated with : <a href="index.html#refartifact134149"><b>glbuf</b></a>, <a href="index.html#refartifact132357"><b>procnode</b></a>, <a href="index.html#refartifact130949"><b>stateproxy</b></a>, <a href="index.html#refartifact132741"><b>hub</b></a>, <a href="index.html#refartifact131077"><b>buildable</b></a>, <a href="index.html#refartifact129285"><b>abstractmo</b></a>, <a href="index.html#refartifact131461"><b>nodecreatertool</b></a>, <a href="index.html#refartifact132869"><b>projector</b></a>, <a href="index.html#refartifact134661"><b>interpolator</b></a>, <a href="index.html#refartifact128645"><b>edl</b></a>, <a href="index.html#refartifact128773"><b>fixture</b></a>, <a href="index.html#refartifact133253"><b>glpipe</b></a>, <a href="index.html#refartifact133509"><b>vrender</b></a>, <a href="index.html#refartifact132229"><b>exitnode</b></a>, <a href="index.html#refartifact131717"><b>pathmanager</b></a>, <a href="index.html#refartifact128901"><b>track</b></a>, <a href="index.html#refartifact134533"><b>paramprovider</b></a>, <a href="index.html#refartifact132997"><b>mask</b></a>, <a href="index.html#refartifact128133"><b>main</b></a>, <a href="index.html#refartifact130693"><b>conmanager</b></a>, <a href="index.html#refartifact129413"><b>clip</b></a>, <a href="index.html#refartifact129669"><b>meta</b></a>, <a href="index.html#refartifact129797"><b>fixedlocation</b></a>, <a href="index.html#refartifact129925"><b>relativelocation</b></a>, <a href="index.html#refartifact128261"><b>mobject</b></a>, <a href="index.html#refartifact134277"><b>source</b></a>, <a href="index.html#refartifact133765"><b>frame</b></a>, <a href="index.html#refartifact129029"><b>placement</b></a>, <a href="index.html#refartifact128517"><b>sessionimpl</b></a>, <a href="index.html#refartifact130437"><b>builderfacade</b></a>, <a href="index.html#refartifact131589"><b>controllerfacade</b></a>, <a href="index.html#refartifact132101"><b>processor</b></a>, <a href="index.html#refartifact133125"><b>pluginadapter</b></a>, <a href="index.html#refartifact129541"><b>effect</b></a>, <a href="index.html#refartifact131205"><b>buildertool</b></a>, <a href="index.html#refartifact131333"><b>segmentationtool</b></a>, <a href="index.html#refartifact133893"><b>aframe</b></a>, <a href="index.html#refartifact130821"><b>assembler</b></a>, <a href="index.html#refartifact132485"><b>trafo</b></a>, <a href="index.html#refartifact129157"><b>explicitplacement</b></a>, <a href="index.html#refartifact130309"><b>auto</b></a>, <a href="index.html#refartifact133637"><b>glrender</b></a>, <a href="index.html#refartifact132613"><b>link</b></a>, <a href="index.html#refartifact134405"><b>parameter</b></a>, <a href="index.html#refartifact131973"><b>renderengine</b></a>, <a href="index.html#refartifact130053"><b>allocation</b></a>, <a href="index.html#refartifact134021"><b>vframe</b></a>, <a href="index.html#refartifact130565"><b>toolfactory</b></a>, <a href="index.html#refartifact133381"><b>arender</b></a>, <a href="index.html#refartifact131845"><b>renderstate</b></a>, <a href="index.html#refartifact130181"><b>label</b></a></p>
|
||||
<a name="refartifact128133"></a>
|
||||
<table><tr><td><div class="element">Artifact <b>main</b></div></td></tr></table>
|
||||
<p>Artifact <i>source</i></p>
|
||||
|
|
@ -902,12 +902,16 @@ reuse exiting Engine</pre></li></ul><p>Selection :</p><ul></ul><p>Transformation
|
|||
<table><tr><td><div class="element">Class <b><a href="class142597.html#refclass142597"><b>StateAdapter</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class142725.html#refclass142725"><b>WiringDescriptor</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class143365.html#refclass143365"><b>NodeWiring</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class143493.html#refclass143493"><b>InvocationStateBase</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class143621.html#refclass143621"><b>Caching</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class143749.html#refclass143749"><b>Process</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class143877.html#refclass143877"><b>InPlace</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class144005.html#refclass144005"><b>WiringTable</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class143493.html#refclass143493"><b>OperationBase</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class143621.html#refclass143621"><b>QueryCache</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class143749.html#refclass143749"><b>PullInput</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class143877.html#refclass143877"><b>ReadSource</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class144389.html#refclass144389"><b>ProcessData</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class144645.html#refclass144645"><b>FeedCache</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class144517.html#refclass144517"><b>Strategy</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class144005.html#refclass144005"><b>BuffTable</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class144133.html#refclass144133"><b>BuffHandle</b></a></b></div></td></tr></table>
|
||||
<table><tr><td><div class="element">Class <b><a href="class144261.html#refclass144261"><b>Invocation</b></a></b></div></td></tr></table>
|
||||
</div>
|
||||
</div>
|
||||
<a name="refuse case view128005"></a>
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@
|
|||
|
||||
<table>
|
||||
<tr bgcolor=#f0f0f0><td align=center><b>Name</b></td><td align=center><b>Kind</b></td><td align=center><b>Description</b></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition129541" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition129797" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition129541" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition129669" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition130309" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition131205" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
|
|
@ -28,10 +28,10 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition131461" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition130693" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition129029" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition131717" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition130181" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition130949" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition131717" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition131077" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition130949" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition130053" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition128901" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#reftransition130565" target = "projectFrame"><b><flow></b></a></td><td>transition</td><td></td></tr>
|
||||
|
|
|
|||
|
|
@ -55,12 +55,12 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view128901" target = "projectFrame"><b>Assets</b></a></td><td>class view</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute129285" target = "projectFrame"><b>ATTACH</b></a></td><td>attribute</td><td>attach subject to anchor (e.g. an effect to a clip)</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance137221" target = "projectFrame"><b>au1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131845" target = "projectFrame"><b>aud_a</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128773" target = "projectFrame"><b>aud_A</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131845" target = "projectFrame"><b>aud_a</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131205" target = "projectFrame"><b>audio</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130821" target = "projectFrame"><b>audio1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128901" target = "projectFrame"><b>audio1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128389" target = "projectFrame"><b>audio1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128901" target = "projectFrame"><b>audio1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130821" target = "projectFrame"><b>audio1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact130309" target = "projectFrame"><b>auto</b></a></td><td>artifact</td><td>Media Object holding automation data</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class129925.html#refclass129925" target = "projectFrame"><b>Auto</b></a></td><td>class</td><td>Automation data for some parameter (i.e. a time varying function)</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram129669" target = "projectFrame"><b>Automation Entities</b></a></td><td>class diagram</td><td></td></tr>
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class143109.html#refclass143109" target = "projectFrame"><b>BackendCache</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage129157" target = "projectFrame"><b>BackendLayer</b></a></td><td>package</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144133.html#refclass144133" target = "projectFrame"><b>BuffHandle</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144005.html#refclass144005" target = "projectFrame"><b>BuffTable</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation128901" target = "projectFrame"><b>build</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refactivity diagram129413" target = "projectFrame"><b>build flow</b></a></td><td>activity diagram</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refdecision activity node128389" target = "projectFrame"><b>build necessary?</b></a></td><td>decision activity node</td><td></td></tr>
|
||||
|
|
@ -36,8 +37,8 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact131077" target = "projectFrame"><b>buildable</b></a></td><td>artifact</td><td>marker interface denoting any MObject able to be treated by Tools</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation128517" target = "projectFrame"><b>buildEngine</b></a></td><td>operation</td><td>Main Operation of the Builder: create a render engine for a given part of the timeline</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent128005" target = "projectFrame"><b>Builder</b></a></td><td>component</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage130565" target = "projectFrame"><b>builder</b></a></td><td>package</td><td>sourcecode package<br /><br />The Builder creating the Render Engine,<br />located within the MObject Subsystem</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage128901" target = "projectFrame"><b>Builder</b></a></td><td>package</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage130565" target = "projectFrame"><b>builder</b></a></td><td>package</td><td>sourcecode package<br /><br />The Builder creating the Render Engine,<br />located within the MObject Subsystem</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram129285" target = "projectFrame"><b>Builder Entities</b></a></td><td>class diagram</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view128261" target = "projectFrame"><b>Builder Workings</b></a></td><td>class view</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class130565.html#refclass130565" target = "projectFrame"><b>BuilderFacade</b></a></td><td>class</td><td>Provides unified access to the builder functionality. While individual components of the builder subsystem may be called if necessary or suitable, it is usually better to do all extern invocations via the high level methods of this Facade</td></tr>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,8 @@
|
|||
<tr bgcolor=#f0f0f0><td align=center><b>Name</b></td><td align=center><b>Kind</b></td><td align=center><b>Description</b></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent129157" target = "projectFrame"><b>Cache</b></a></td><td>component</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent view128138" target = "projectFrame"><b>Cache</b></a></td><td>component view</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143621.html#refclass143621" target = "projectFrame"><b>Caching</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation136581" target = "projectFrame"><b>callDown</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation136453" target = "projectFrame"><b>callDown</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143237.html#refclass143237" target = "projectFrame"><b>Caller</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation140421" target = "projectFrame"><b>category</b></a></td><td>relation</td><td>primary tree like classification of the asset</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class137221.html#refclass137221" target = "projectFrame"><b>Category</b></a></td><td>class</td><td>tree like classification of Assets</td></tr>
|
||||
|
|
@ -29,34 +30,34 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation145413" target = "projectFrame"><b>chain</b></a></td><td>relation</td><td>Chain of additional Placements further constraining the position of this MObject</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation129633" target = "projectFrame"><b>checked_in</b></a></td><td>relation</td><td>checked_in objects are subject of cache aging and must be not in use</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation129290" target = "projectFrame"><b>checked_out</b></a></td><td>relation</td><td>this list keeps all mappings which are in use, and thus prevents them from Cache aging</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135429" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135045" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135301" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135813" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135173" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135557" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134661" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135685" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135557" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135429" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135301" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135173" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135045" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134917" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134789" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130181" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131589" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130309" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134661" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance135813" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132229" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130053" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132485" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133509" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130565" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129797" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130437" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128261" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130565" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132229" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132357" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128005" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133509" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132485" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129029" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130053" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130693" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128133" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129541" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130309" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129285" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128005" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128133" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132357" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131589" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128261" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130693" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130181" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation133765" target = "projectFrame"><b>clear</b></a></td><td>operation</td><td>clear current session contents <br />without resetting overall session config.<br />Afterwards, the session will contain only one <br />empty EDL, while all Assets are retained.<br /></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent131077" target = "projectFrame"><b>client code</b></a></td><td>component</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class137349.html#refclass137349" target = "projectFrame"><b>Clip</b></a></td><td>class</td><td>bookkeeping (asset) view of a media clip.</td></tr>
|
||||
|
|
|
|||
|
|
@ -18,14 +18,14 @@
|
|||
<table>
|
||||
<tr bgcolor=#f0f0f0><td align=center><b>Name</b></td><td align=center><b>Kind</b></td><td align=center><b>Description</b></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact128645" target = "projectFrame"><b>edl</b></a></td><td>artifact</td><td>the (high level) Edit Decision List within the current Session</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class128133.html#refclass128133" target = "projectFrame"><b>EDL</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent128389" target = "projectFrame"><b>EDL</b></a></td><td>component</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class128133.html#refclass128133" target = "projectFrame"><b>EDL</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refobject diagram128773" target = "projectFrame"><b>EDL Example1</b></a></td><td>object diagram</td><td>A simple example showing how the actual objects are placed in the Fixture (=definitive playlist). It shows a Video and Audio clip placed on two tracks</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refobject diagram128901" target = "projectFrame"><b>EDL Example2</b></a></td><td>object diagram</td><td>More complex example showing the Object graph in the EDL and how it is linked into the Fixture to yield the actual locations. In this example, an HUE Effect is applied on a part of the Clip</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation128005" target = "projectFrame"><b>edls</b></a></td><td>relation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class137733.html#refclass137733" target = "projectFrame"><b>Effect</b></a></td><td>class</td><td>Effect or media processing component</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact137221" target = "projectFrame"><b>effect</b></a></td><td>artifact</td><td>Effect or media processing component</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact129541" target = "projectFrame"><b>effect</b></a></td><td>artifact</td><td>EDL representation of a pluggable and automatable effect.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact137221" target = "projectFrame"><b>effect</b></a></td><td>artifact</td><td>Effect or media processing component</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class129029.html#refclass129029" target = "projectFrame"><b>Effect</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation138885" target = "projectFrame"><b>elements</b></a></td><td>relation</td><td>relevant MObjects comprising this segment. TODO: actually necessary??</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation132997" target = "projectFrame"><b>enable</b></a></td><td>operation</td><td>change the enabled status of this asset. Note the corresponding #isActive predicate may depend on the enablement status of parent assets as well</td></tr>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
<table>
|
||||
<tr bgcolor=#f0f0f0><td align=center><b>Name</b></td><td align=center><b>Kind</b></td><td align=center><b>Description</b></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class135301.html#refclass135301" target = "projectFrame"><b>Factory</b></a></td><td>class</td><td>a template for generating functor-like Factory objects, used to encapsulate object creation and providing access via smart-pointers only.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144645.html#refclass144645" target = "projectFrame"><b>FeedCache</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation135813" target = "projectFrame"><b>fetch</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class128181.html#refclass128181" target = "projectFrame"><b>File</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation128138" target = "projectFrame"><b>file</b></a></td><td>relation</td><td></td></tr>
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram130181" target = "projectFrame"><b>Hierarchy</b></a></td><td>class diagram</td><td>Lumiera Exception hierarchy</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation133381" target = "projectFrame"><b>howtoProc</b></a></td><td>operation</td><td>@return descriptor how to build a render pipeline corresponding to this media</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact132741" target = "projectFrame"><b>hub</b></a></td><td>artifact</td><td>special ProcNode used to build data distributing connections</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133893" target = "projectFrame"><b>HUE</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133253" target = "projectFrame"><b>HUE</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133893" target = "projectFrame"><b>HUE</b></a></td><td>class instance</td><td></td></tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -20,10 +20,9 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute130437" target = "projectFrame"><b>id</b></a></td><td>attribute</td><td>Asset primary key.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram128309" target = "projectFrame"><b>In Memory Database</b></a></td><td>class diagram</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refactivity action pin128133" target = "projectFrame"><b>inFixture</b></a></td><td>activity action pin</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143877.html#refclass143877" target = "projectFrame"><b>InPlace</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131461" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134149" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132869" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134149" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131461" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation131461" target = "projectFrame"><b>instance</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation143621" target = "projectFrame"><b>instructions</b></a></td><td>relation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view129029" target = "projectFrame"><b>Interface</b></a></td><td>class view</td><td></td></tr>
|
||||
|
|
@ -32,7 +31,7 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact134661" target = "projectFrame"><b>interpolator</b></a></td><td>artifact</td><td>denotes a facility to get (continuously interpolated) parameter values</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134789.html#refclass134789" target = "projectFrame"><b>Interpolator</b></a></td><td>class</td><td>Provides the implementation for getting the acutal value of a time varying or automated effect/plugin parameter</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class136069.html#refclass136069" target = "projectFrame"><b>Invalid</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143493.html#refclass143493" target = "projectFrame"><b>InvocationStateBase</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144261.html#refclass144261" target = "projectFrame"><b>Invocation</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation138373" target = "projectFrame"><b>ipo</b></a></td><td>relation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation132869" target = "projectFrame"><b>isActive</b></a></td><td>operation</td><td>weather this asset is swithced on and consequently included in the fixture and participates in rendering</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation136325" target = "projectFrame"><b>isCalculated</b></a></td><td>operation</td><td></td></tr>
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class139397.html#refclass139397" target = "projectFrame"><b>MediaFactory</b></a></td><td>class</td><td>specialized Asset Factory for configuring (new) media asset instances based on existing media files on disk; can create placeholder assets as well</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refmerge activity node128773" target = "projectFrame"><b>merge activity node</b></a></td><td>merge activity node</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class137093.html#refclass137093" target = "projectFrame"><b>Meta</b></a></td><td>class</td><td>key abstraction: metadata and organisational asset</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact129669" target = "projectFrame"><b>meta</b></a></td><td>artifact</td><td>abstract base class of all MObjects representing meta data or processing instructions</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact136837" target = "projectFrame"><b>meta</b></a></td><td>artifact</td><td>key abstraction: metadata and organisational asset</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact129669" target = "projectFrame"><b>meta</b></a></td><td>artifact</td><td>abstract base class of all MObjects representing meta data or processing instructions</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class129157.html#refclass129157" target = "projectFrame"><b>Meta</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact128261" target = "projectFrame"><b>mobject</b></a></td><td>artifact</td><td>Key Abstraction: A Media Object in the Session</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage130181" target = "projectFrame"><b>mobject</b></a></td><td>package</td><td>sourcecode package<br /><br />MObject Subsystem<br />including the Session (EDL), Builder and Processing Controller</td></tr>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
<table>
|
||||
<tr bgcolor=#f0f0f0><td align=center><b>Name</b></td><td align=center><b>Kind</b></td><td align=center><b>Description</b></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute129029" target = "projectFrame"><b>offset</b></a></td><td>attribute</td><td>Offset the actual position by this (time) value relative to the anchor point. TODO: Representation?</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143493.html#refclass143493" target = "projectFrame"><b>OperationBase</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute130821" target = "projectFrame"><b>org</b></a></td><td>attribute</td><td>origin or authorship id. Can be a project abbreviation, a package id or just the authors nickname or UID. This allows for the compnent name to be more generic (e.g. "blur"). Default for all assets provided by the core Lumiera codebase is "lumi".</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131333" target = "projectFrame"><b>ouput</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134405" target = "projectFrame"><b>ouput</b></a></td><td>class instance</td><td></td></tr>
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram131077" target = "projectFrame"><b>Proc-Asset Relations</b></a></td><td>class diagram</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent diagram130053" target = "projectFrame"><b>proc-components</b></a></td><td>component diagram</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class141957.html#refclass141957" target = "projectFrame"><b>ProcDispatcher</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143749.html#refclass143749" target = "projectFrame"><b>Process</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation136069" target = "projectFrame"><b>process</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144389.html#refclass144389" target = "projectFrame"><b>ProcessData</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage129285" target = "projectFrame"><b>ProcessingLayer</b></a></td><td>package</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class131461.html#refclass131461" target = "projectFrame"><b>Processor</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact132101" target = "projectFrame"><b>processor</b></a></td><td>artifact</td><td>a single render pipeline for one segment of the timeline</td></tr>
|
||||
|
|
@ -67,6 +67,7 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact132869" target = "projectFrame"><b>projector</b></a></td><td>artifact</td><td>video ProcNode for scaling and translating image data</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation138629" target = "projectFrame"><b>provider</b></a></td><td>relation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation135685" target = "projectFrame"><b>pull</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143749.html#refclass143749" target = "projectFrame"><b>PullInput</b></a></td><td>class</td><td></td></tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view129157" target = "projectFrame"><b>query</b></a></td><td>class view</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent view128261" target = "projectFrame"><b>Query System overview</b></a></td><td>component view</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refuse case view128389" target = "projectFrame"><b>query use</b></a></td><td>use case view</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143621.html#refclass143621" target = "projectFrame"><b>QueryCache</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class140677.html#refclass140677" target = "projectFrame"><b>QueryHandler</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class141189.html#refclass141189" target = "projectFrame"><b>QueryHandlerImpl</b></a></td><td>class</td><td></td></tr>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -17,14 +17,15 @@
|
|||
|
||||
<table>
|
||||
<tr bgcolor=#f0f0f0><td align=center><b>Name</b></td><td align=center><b>Kind</b></td><td align=center><b>Description</b></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143877.html#refclass143877" target = "projectFrame"><b>ReadSource</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129669" target = "projectFrame"><b>refPoint</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation132357" target = "projectFrame"><b>reg</b></a></td><td>operation</td><td>registers an asset object in the internal DB, providing its unique key</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation142085" target = "projectFrame"><b>registry</b></a></td><td>relation</td><td>@internal Table or DB holding all registered asset instances.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact129925" target = "projectFrame"><b>relativelocation</b></a></td><td>artifact</td><td>Placement implemnetaion providing various ways of attaching a MObject to another one</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class129413.html#refclass129413" target = "projectFrame"><b>RelativeLocation</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation136197" target = "projectFrame"><b>releaseBuffer</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute128133" target = "projectFrame"><b>relType</b></a></td><td>attribute</td><td>the kind of relation denoted by this Placement</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class133893.html#refclass133893" target = "projectFrame"><b>RelType</b></a></td><td>class</td><td>the possible kinds of RelativePlacements</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute128133" target = "projectFrame"><b>relType</b></a></td><td>attribute</td><td>the kind of relation denoted by this Placement</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation132741" target = "projectFrame"><b>remove</b></a></td><td>operation</td><td>remove the given asset <i>together with all its dependants</i> from the internal DB</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram128389" target = "projectFrame"><b>Render Entities</b></a></td><td>class diagram</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram131973" target = "projectFrame"><b>Render Mechanics</b></a></td><td>class diagram</td><td></td></tr>
|
||||
|
|
|
|||
|
|
@ -32,8 +32,8 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view128645" target = "projectFrame"><b>Service Components</b></a></td><td>class view</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent128133" target = "projectFrame"><b>Session</b></a></td><td>component</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact138757" target = "projectFrame"><b>session</b></a></td><td>artifact</td><td>Interface: the session edited by the user</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage130437" target = "projectFrame"><b>session</b></a></td><td>package</td><td>sourcecode package<br /><br />Everything concerning the EDL and Session, within the MObject Subsystem</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view128005" target = "projectFrame"><b>Session</b></a></td><td>class view</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage130437" target = "projectFrame"><b>session</b></a></td><td>package</td><td>sourcecode package<br /><br />Everything concerning the EDL and Session, within the MObject Subsystem</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class139653.html#refclass139653" target = "projectFrame"><b>Session</b></a></td><td>class</td><td>Primary Interface for all editing tasks.<br />The session contains defaults, all the assets being edited, and a set of EDL with the individual MObjects to be manipulated and rendered.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram128133" target = "projectFrame"><b>Session structure</b></a></td><td>class diagram</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact128517" target = "projectFrame"><b>sessionimpl</b></a></td><td>artifact</td><td>holds the complete session data to be edited by the user</td></tr>
|
||||
|
|
@ -47,8 +47,8 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class138885.html#refclass138885" target = "projectFrame"><b>SimpleClip</b></a></td><td>class</td><td>Elementary clip consisting of only one media stream</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class128906.html#refclass128906" target = "projectFrame"><b>SmartPointer</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view128266" target = "projectFrame"><b>SmartPointers</b></a></td><td>class view</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation141957" target = "projectFrame"><b>source</b></a></td><td>relation</td><td>media source of this clip</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation142469" target = "projectFrame"><b>source</b></a></td><td>relation</td><td>the media source this clip referes to</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation141957" target = "projectFrame"><b>source</b></a></td><td>relation</td><td>media source of this clip</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class133765.html#refclass133765" target = "projectFrame"><b>Source</b></a></td><td>class</td><td>Source Node: represents a media source to pull data from.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact134277" target = "projectFrame"><b>source</b></a></td><td>artifact</td><td>Representation of a Media source</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refdeployment diagram129797" target = "projectFrame"><b>Source Overview</b></a></td><td>deployment diagram</td><td></td></tr>
|
||||
|
|
@ -64,6 +64,7 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class142469.html#refclass142469" target = "projectFrame"><b>StateProxy</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact130949" target = "projectFrame"><b>stateproxy</b></a></td><td>artifact</td><td>Key Interface representing a render process and encapsulating state</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class136325.html#refclass136325" target = "projectFrame"><b>std::exception</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144517.html#refclass144517" target = "projectFrame"><b>Strategy</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class136965.html#refclass136965" target = "projectFrame"><b>Struct</b></a></td><td>class</td><td>key abstraction: structural asset</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact136709" target = "projectFrame"><b>struct</b></a></td><td>artifact</td><td>key abstraction: structural asset</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram131205" target = "projectFrame"><b>Struct-Asset Relations</b></a></td><td>class diagram</td><td></td></tr>
|
||||
|
|
|
|||
|
|
@ -42,13 +42,13 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact132485" target = "projectFrame"><b>trafo</b></a></td><td>artifact</td><td>transforming processing Node </td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation134405" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation129797" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td>This operation is to be overloaded for the specific MObject subclasses to be treated.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130437" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130693" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130565" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130437" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130309" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130181" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation129925" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130053" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation129925" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class140805.html#refclass140805" target = "projectFrame"><b>TypeHandler</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class141317.html#refclass141317" target = "projectFrame"><b>TypeHandler<Pipe></b></a></td><td>class</td><td></td></tr>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -22,18 +22,18 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact134021" target = "projectFrame"><b>vframe</b></a></td><td>artifact</td><td>a buffer and render process holding a Video frame</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance137093" target = "projectFrame"><b>vid1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128645" target = "projectFrame"><b>vid_A</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131717" target = "projectFrame"><b>vid_a</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134021" target = "projectFrame"><b>vid_a</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129413" target = "projectFrame"><b>vid_A</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129925" target = "projectFrame"><b>vid_A</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134021" target = "projectFrame"><b>vid_a</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132741" target = "projectFrame"><b>video</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133765" target = "projectFrame"><b>video</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131717" target = "projectFrame"><b>vid_a</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134533" target = "projectFrame"><b>video</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132741" target = "projectFrame"><b>video</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131077" target = "projectFrame"><b>video</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133765" target = "projectFrame"><b>video</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133637" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128517" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132997" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134277" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128517" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129157" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130949" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class140165.html#refclass140165" target = "projectFrame"><b>Visitable</b></a></td><td>class</td><td></td></tr>
|
||||
|
|
|
|||
|
|
@ -20,9 +20,7 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation131845" target = "projectFrame"><b>what</b></a></td><td>operation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation131717" target = "projectFrame"><b>what</b></a></td><td>operation</td><td>the base class of all exceptions thrown by the standard library</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refuse case diagram131717" target = "projectFrame"><b>when to query</b></a></td><td>use case diagram</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation154117" target = "projectFrame"><b>wiring</b></a></td><td>relation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class142725.html#refclass142725" target = "projectFrame"><b>WiringDescriptor</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class144005.html#refclass144005" target = "projectFrame"><b>WiringTable</b></a></td><td>class</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation148229" target = "projectFrame"><b>wiringTemplate</b></a></td><td>relation</td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact139269" target = "projectFrame"><b>wish</b></a></td><td>artifact</td><td>LocatingPin representing a low-priority directive by the user,<br />to be fulfilled only if possible (and after satisfying the<br />more important LocatingPins)</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class130053.html#refclass130053" target = "projectFrame"><b>Wish</b></a></td><td>class</td><td></td></tr>
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class131077.html#refoperation128901"><b>build</b></a></td><td><a href="class131077.html#refclass131077"><b>Assembler</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class130565.html#refoperation128517"><b>buildEngine</b></a></td><td><a href="class130565.html#refclass130565"><b>BuilderFacade</b></a></td><td>Main Operation of the Builder: create a render engine for a given part of the timeline</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class130437.html#refoperation128261"><b>buildProcessor</b></a></td><td><a href="class130437.html#refclass130437"><b>PathManager</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class143365.html#refoperation136581"><b>callDown</b></a></td><td><a href="class143365.html#refclass143365"><b>NodeWiring</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class142725.html#refoperation136453"><b>callDown</b></a></td><td><a href="class142725.html#refclass142725"><b>WiringDescriptor</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class128645.html#refoperation134277"><b>chain</b></a></td><td><a href="class128645.html#refclass128645"><b>Placement</b></a></td><td>create and add another Placement for this media object, thus increasingly constraining the (possible) position of this object.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class139781.html#refoperation133765"><b>clear</b></a></td><td><a href="class139781.html#refclass139781"><b>SessManager</b></a></td><td>clear current session contents <br />without resetting overall session config.<br />Afterwards, the session will contain only one <br />empty EDL, while all Assets are retained.<br /></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class130693.html#refoperation128773"><b>configure</b></a></td><td><a href="class130693.html#refclass130693"><b>ToolFactory</b></a></td><td></td></tr>
|
||||
|
|
@ -67,12 +69,12 @@
|
|||
<tr bgcolor=#f0f0f0><td><a href="class139781.html#refoperation134149"><b>save</b></a></td><td><a href="class139781.html#refclass139781"><b>SessManager</b></a></td><td>create a complete, serialized representation<br />of the current session config and contents.<br />@todo how to serialize, prameters, return value?</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class140293.html#refoperation134405"><b>treat</b></a></td><td><a href="class140293.html#refclass140293"><b>Applicable</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134149.html#refoperation129797"><b>treat</b></a></td><td><a href="class134149.html#refclass134149"><b>BuilderTool</b></a></td><td>This operation is to be overloaded for the specific MObject subclasses to be treated.</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134405.html#refoperation130437"><b>treat</b></a></td><td><a href="class134405.html#refclass134405"><b>NodeCreatorTool</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134405.html#refoperation130309"><b>treat</b></a></td><td><a href="class134405.html#refclass134405"><b>NodeCreatorTool</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134405.html#refoperation130565"><b>treat</b></a></td><td><a href="class134405.html#refclass134405"><b>NodeCreatorTool</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134405.html#refoperation130437"><b>treat</b></a></td><td><a href="class134405.html#refclass134405"><b>NodeCreatorTool</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134405.html#refoperation130693"><b>treat</b></a></td><td><a href="class134405.html#refclass134405"><b>NodeCreatorTool</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134277.html#refoperation129925"><b>treat</b></a></td><td><a href="class134277.html#refclass134277"><b>SegmentationTool</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134277.html#refoperation130053"><b>treat</b></a></td><td><a href="class134277.html#refclass134277"><b>SegmentationTool</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134277.html#refoperation129925"><b>treat</b></a></td><td><a href="class134277.html#refclass134277"><b>SegmentationTool</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class134277.html#refoperation130181"><b>treat</b></a></td><td><a href="class134277.html#refclass134277"><b>SegmentationTool</b></a></td><td></td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class129333.html#refoperation128010"><b>useFile</b></a></td><td><a href="class129333.html#refclass129333"><b>FileProvider</b></a></td><td>Announces that the application intends to use this file with mode (READ|WRITE|READWRITE)</td></tr>
|
||||
<tr bgcolor=#f0f0f0><td><a href="class129333.html#refoperation128138"><b>useTemporaryStorage</b></a></td><td><a href="class129333.html#refclass129333"><b>FileProvider</b></a></td><td>Provides a pool for interminate frames</td></tr>
|
||||
|
|
|
|||
65
icons/Makefile.am
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# Copyright (C) Lumiera.org
|
||||
# 2008, Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||
#
|
||||
# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
svgdir = $(top_srcdir)/icons/svg
|
||||
prerendereddir = $(top_srcdir)/icons/prerendered
|
||||
icondir = $(top_builddir)
|
||||
iconcommand = python $(top_srcdir)/admin/render-icon.py
|
||||
|
||||
16x16 = $(icondir)/16x16
|
||||
22x22 = $(icondir)/22x22
|
||||
24x24 = $(icondir)/24x24
|
||||
32x32 = $(icondir)/32x32
|
||||
48x48 = $(icondir)/48x48
|
||||
|
||||
16x16pre = $(prerendereddir)/16x16
|
||||
22x22pre = $(prerendereddir)/22x22
|
||||
24x24pre = $(prerendereddir)/24x24
|
||||
32x32pre = $(prerendereddir)/32x32
|
||||
48x48pre = $(prerendereddir)/48x48
|
||||
|
||||
lumigui_DEPENDENCIES += \
|
||||
rsvg-convert \
|
||||
$(16x16)/tool-arrow.png $(22x22)/tool-arrow.png $(24x24)/tool-arrow.png $(32x32)/tool-arrow.png $(48x48)/tool-arrow.png \
|
||||
$(16x16)/tool-i-beam.png $(22x22)/tool-i-beam.png $(24x24)/tool-i-beam.png $(32x32)/tool-i-beam.png $(48x48)/tool-i-beam.png \
|
||||
$(16x16)/panel-assets.png $(22x22)/panel-assets.png $(32x32)/panel-assets.png \
|
||||
$(16x16)/panel-timeline.png \
|
||||
$(16x16)/panel-viewer.png $(22x22)/panel-viewer.png $(32x32)/panel-viewer.png
|
||||
|
||||
$(16x16)/tool-arrow.png $(22x22)/tool-arrow.png $(24x24)/tool-arrow.png $(32x32)/tool-arrow.png $(48x48)/tool-arrow.png : $(svgdir)/tool-arrow.svg
|
||||
$(iconcommand) $< $(icondir)
|
||||
$(16x16)/tool-i-beam.png $(22x22)/tool-i-beam.png $(24x24)/tool-i-beam.png $(32x32)/tool-i-beam.png $(48x48)/tool-i-beam.png : $(svgdir)/tool-i-beam.svg
|
||||
$(iconcommand) $< $(icondir)
|
||||
|
||||
$(16x16)/panel-assets.png:
|
||||
cp $(16x16pre)/panel-assets.png $(16x16)
|
||||
$(22x22)/panel-assets.png:
|
||||
cp $(22x22pre)/panel-assets.png $(22x22)
|
||||
$(32x32)/panel-assets.png:
|
||||
cp $(32x32pre)/panel-assets.png $(32x32)
|
||||
|
||||
$(16x16)/panel-timeline.png:
|
||||
cp $(16x16pre)/panel-timeline.png $(16x16)
|
||||
|
||||
$(16x16)/panel-viewer.png:
|
||||
cp $(16x16pre)/panel-viewer.png $(16x16)
|
||||
$(22x22)/panel-viewer.png:
|
||||
cp $(22x22pre)/panel-viewer.png $(22x22)
|
||||
$(32x32)/panel-viewer.png:
|
||||
cp $(32x32pre)/panel-viewer.png $(32x32)
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 540 B After Width: | Height: | Size: 540 B |
|
Before Width: | Height: | Size: 453 B After Width: | Height: | Size: 453 B |
|
Before Width: | Height: | Size: 631 B After Width: | Height: | Size: 631 B |
BIN
icons/prerendered/22x22/panel-assets.png
Normal file
|
After Width: | Height: | Size: 695 B |
BIN
icons/prerendered/22x22/panel-viewer.png
Normal file
|
After Width: | Height: | Size: 788 B |
BIN
icons/prerendered/32x32/panel-assets.png
Normal file
|
After Width: | Height: | Size: 1 KiB |
BIN
icons/prerendered/32x32/panel-viewer.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
732
icons/svg/tool-arrow.svg
Normal file
|
|
@ -0,0 +1,732 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="150"
|
||||
height="100"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.46"
|
||||
version="1.0"
|
||||
sodipodi:docname="tool-arrow.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient10554">
|
||||
<stop
|
||||
style="stop-color:white;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10556" />
|
||||
<stop
|
||||
style="stop-color:white;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop10558" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient124">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop125" />
|
||||
<stop
|
||||
style="stop-color:silver;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop126" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient8773">
|
||||
<stop
|
||||
style="stop-color:black;stop-opacity:0.3137255"
|
||||
offset="0"
|
||||
id="stop8775" />
|
||||
<stop
|
||||
style="stop-color:black;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop8777" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient14467"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.559542,1.292457,-0.3231142,0.1398855,-29.871557,-250.82036)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient14469"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.5869533,0,0,0.8448423,-29.87156,-250.82036)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient14471"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.7041896,0,0,0.7041896,-18.406429,-249.43017)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient14473"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-137.34366,-352.57235)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient14475"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2,0,0,0.5,-20.55174,-11.55357)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient14477"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.833516,0,0,1.199737,2.4375,-23.45032)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient14479"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient14481"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.125001,0,0,1.125001,-202.51184,-408.14432)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient14483"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9377063,0,0,1.3497053,-220.82833,-410.36528)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient14485"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.8939146,2.0648066,-0.5162016,0.2234786,-220.82833,-410.36529)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient14487"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient14489"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-144.34366,-395.57235)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient14491"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.6670334,0,0,2.399476,-491.25039,-801.09382)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient14493"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5891814,3.6707672,-0.9176918,0.3972953,-491.25038,-801.09383)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient14495"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient7954"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient7960"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3333333,0,0,1.3333333,-220.12487,-531.76312)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient7963"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.1113546,0,0,1.5996493,-241.83329,-534.39538)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient7966"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0594534,2.447176,-0.611794,0.2648633,-241.83329,-534.39539)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient8746"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8748"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0594534,2.447176,-0.611794,0.2648633,-241.83329,-534.39539)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8750"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.1113546,0,0,1.5996493,-241.83329,-534.39538)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8752"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3333333,0,0,1.3333333,-220.12487,-531.76312)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8755"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3333333,0,0,1.3333333,-220.1248,-531.60971)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8758"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.1113546,0,0,1.5996493,-241.83322,-534.24197)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8761"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0594534,2.447176,-0.611794,0.2648633,-241.83322,-534.24198)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8771"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0594534,2.447176,-0.611794,0.2648633,-241.83322,-534.24198)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8773"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.1113546,0,0,1.5996493,-241.83322,-534.24197)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8775"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3333333,0,0,1.3333333,-220.1248,-531.60971)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8778"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3333333,0,0,1.3333333,-220.3124,-531.60971)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8781"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.1113546,0,0,1.5996493,-242.02082,-534.24197)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8784"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0594534,2.447176,-0.611794,0.2648633,-242.02082,-534.24198)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient8830"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8832"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5891814,3.6707672,-0.9176918,0.3972953,-491.25038,-801.09383)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8834"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.6670334,0,0,2.399476,-491.25039,-801.09382)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8836"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-144.34366,-395.57235)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient8838"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8840"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0594534,2.447176,-0.611794,0.2648633,-242.02082,-534.24198)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8842"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.1113546,0,0,1.5996493,-242.02082,-534.24197)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8844"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3333333,0,0,1.3333333,-220.3124,-531.60971)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8855"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-144.34366,-395.57235)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8858"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.6670334,0,0,2.399476,-491.25039,-801.09382)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8861"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5891814,3.6707672,-0.9176918,0.3972953,-491.25038,-801.09383)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
gridtolerance="10000"
|
||||
guidetolerance="10"
|
||||
objecttolerance="10"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6568543"
|
||||
inkscape:cx="64.614973"
|
||||
inkscape:cy="46.534319"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer3"
|
||||
showgrid="true"
|
||||
inkscape:snap-nodes="false"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:snap-global="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:window-width="1679"
|
||||
inkscape:window-height="977"
|
||||
inkscape:window-x="1281"
|
||||
inkscape:window-y="48">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid13478"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
spacingx="0.5px"
|
||||
spacingy="0.5px"
|
||||
empspacing="2" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="artwork:tool-arrow"
|
||||
style="display:inline">
|
||||
<path
|
||||
transform="matrix(0.989175,0,0,1.31555,167.22388,56.536408)"
|
||||
d="M -49.76264,24.296782 A 8.087534,1.9003495 0 1 1 -65.937708,24.296782 A 8.087534,1.9003495 0 1 1 -49.76264,24.296782 z"
|
||||
sodipodi:ry="1.9003495"
|
||||
sodipodi:rx="8.087534"
|
||||
sodipodi:cy="24.296782"
|
||||
sodipodi:cx="-57.850174"
|
||||
id="path8771"
|
||||
style="opacity:0.7;fill:url(#radialGradient14479);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
||||
sodipodi:type="arc" />
|
||||
<g
|
||||
style="display:inline"
|
||||
id="g79"
|
||||
transform="translate(-156.06247,-331.09622)">
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 258.57812,401.60617 L 258.57812,417.04968 L 263.125,414.04968 L 265.90625,420.48718 L 268.1875,419.48718 L 265.46875,413.20593 L 269.56185,412.76843 L 258.57812,401.60617 z"
|
||||
id="rect16" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccc"
|
||||
id="rect91"
|
||||
d="M 481.01295,-78.954349 L 484.11717,-79.645589 L 484.52504,-78.954349 L 491.01295,-78.954349 L 491.01998,-77.463121 L 484.28372,-77.462474 L 483.9729,-76.666406 L 481.00254,-77.462159 L 481.01295,-78.954349 z"
|
||||
style="fill:url(#linearGradient14475);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
|
||||
transform="matrix(0.397295,0.917691,-0.917691,0.397295,0,0)" />
|
||||
<path
|
||||
style="fill:url(#radialGradient14477);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 268.45834,412.37995 L 264.03447,412.8429 L 259.08804,416.09773 L 259.07888,402.85299 L 268.45834,412.37995 z"
|
||||
id="path15"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient14473);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
|
||||
d="M 111.38437,80.978458 L 107.31977,81.366268 L 103.50867,84.146458 L 103.49998,72.973838 L 111.38437,80.978458 z"
|
||||
id="path7947"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<g
|
||||
style="display:inline"
|
||||
id="g14435"
|
||||
transform="translate(-22.000014,29.000022)">
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 150.5,48.5 L 150.5,59.5 L 153.5,57.5 L 155.5,61.5 L 157.5,60.5 L 155.5,56.5 L 158.5,56.5 L 150.5,48.5 z"
|
||||
id="path14451" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccccc"
|
||||
id="path14453"
|
||||
d="M 154.008,54.448252 L 155.59103,55.96514 L 155.06871,56.768088 L 156.83361,60.279957 L 155.71008,60.83563 L 154.0092,57.369925 L 153.22923,57.090442 L 153.04079,54.858996 L 154.008,54.448252 z"
|
||||
style="fill:url(#linearGradient14467);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:url(#radialGradient14469);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 157.29014,55.997498 L 154.8557,55.999843 L 151.00417,58.559717 L 151.0033,49.735141 L 157.29014,55.997498 z"
|
||||
id="path14455"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path14457"
|
||||
d="M 156.09792,55.503506 L 154.63636,55.542223 L 151.51178,57.639513 L 151.50565,50.893522 L 156.09792,55.503506 z"
|
||||
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient14471);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer4"
|
||||
inkscape:label="plate#1"
|
||||
style="display:none">
|
||||
<rect
|
||||
y="69"
|
||||
x="97"
|
||||
height="22"
|
||||
width="22"
|
||||
id="rect14465"
|
||||
style="fill:#000000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:3.7750001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:3.7750001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline"
|
||||
id="rect72"
|
||||
width="24"
|
||||
height="24"
|
||||
x="96"
|
||||
y="68" />
|
||||
<rect
|
||||
y="76"
|
||||
x="124"
|
||||
height="16"
|
||||
width="16"
|
||||
id="rect14403"
|
||||
style="fill:#000000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:3.7750001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
|
||||
<rect
|
||||
y="60"
|
||||
x="60"
|
||||
height="32"
|
||||
width="32"
|
||||
id="rect7952"
|
||||
style="fill:#000000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:3.7750001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:3.7750001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline"
|
||||
id="rect14367"
|
||||
width="48"
|
||||
height="48"
|
||||
x="8"
|
||||
y="44" />
|
||||
</g>
|
||||
<g
|
||||
style="display:inline"
|
||||
id="g8787"
|
||||
transform="translate(-31,31)">
|
||||
<path
|
||||
transform="matrix(1.3189,0,0,1.7540667,185.96524,13.868621)"
|
||||
d="M -49.76264,24.296782 A 8.087534,1.9003495 0 1 1 -65.937708,24.296782 A 8.087534,1.9003495 0 1 1 -49.76264,24.296782 z"
|
||||
sodipodi:ry="1.9003495"
|
||||
sodipodi:rx="8.087534"
|
||||
sodipodi:cy="24.296782"
|
||||
sodipodi:cx="-57.850174"
|
||||
id="path7938"
|
||||
style="opacity:0.7;fill:url(#radialGradient8838);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
id="path7942"
|
||||
d="M 99.5,32.5 L 99.5,53.5 L 105.5,49.5 L 109.5,57.5 L 112.5,56 L 108.5,48.5 L 114.5,47.5 L 99.5,32.5 z"
|
||||
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<path
|
||||
style="fill:url(#linearGradient8840);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="M 106.14218,43.762567 L 108.68314,47.878279 L 108.0534,48.743512 L 111.81444,55.783603 L 109.72399,56.828242 L 105.89701,49.207272 L 104.7583,49.248655 L 104.31084,44.540282 L 106.14218,43.762567 z"
|
||||
id="path7944"
|
||||
sodipodi:nodetypes="ccccccccc" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path7946"
|
||||
d="M 113.46659,47.173634 L 106.30247,48.357306 L 100.0002,52.575985 L 99.998595,33.713208 L 113.46659,47.173634 z"
|
||||
style="fill:url(#radialGradient8842);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8844);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
|
||||
d="M 112.42262,46.84474 L 106.10081,47.889164 L 100.50373,51.642958 L 100.52338,34.953163 L 112.42262,46.84474 z"
|
||||
id="path7948"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
<path
|
||||
transform="matrix(1.9783517,0,0,2.6311023,150.44787,21.072802)"
|
||||
d="M -49.76264,24.296782 A 8.087534,1.9003495 0 1 1 -65.937708,24.296782 A 8.087534,1.9003495 0 1 1 -49.76264,24.296782 z"
|
||||
sodipodi:ry="1.9003495"
|
||||
sodipodi:rx="8.087534"
|
||||
sodipodi:cy="24.296782"
|
||||
sodipodi:cx="-57.850174"
|
||||
id="path14357"
|
||||
style="opacity:0.7;fill:url(#radialGradient8830);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
||||
sodipodi:type="arc" />
|
||||
<path
|
||||
id="path14359"
|
||||
d="M 21.0313,49.019882 L 21.0313,79.906929 L 30.125067,73.906919 L 35.687572,86.781929 L 40.250076,84.781929 L 34.812571,72.219419 L 42.998778,71.344419 L 21.0313,49.019882 z"
|
||||
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<path
|
||||
style="fill:url(#linearGradient8861);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.24999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline"
|
||||
d="M 30.994554,65.913749 L 35.187554,71.393389 L 34.416573,72.549189 L 39.58759,84.520119 L 35.94075,86.096749 L 30.602775,73.733639 L 29.099899,73.732579 L 28.247541,67.080319 L 30.994554,65.913749 z"
|
||||
id="path14361"
|
||||
sodipodi:nodetypes="ccccccccc" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path14363"
|
||||
d="M 41.928178,70.962049 L 32.149196,71.998439 L 21.514496,79.013179 L 21.543527,50.266617 L 41.928178,70.962049 z"
|
||||
style="fill:url(#radialGradient8858);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8855);stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
|
||||
d="M 40.852205,70.572499 L 31.965383,71.521739 L 22.007218,78.076499 L 22.08452,51.595929 L 40.852205,70.572499 z"
|
||||
id="path14365"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 29 KiB |
690
icons/svg/tool-i-beam.svg
Normal file
|
|
@ -0,0 +1,690 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="150"
|
||||
height="100"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.46"
|
||||
version="1.0"
|
||||
sodipodi:docname="tool-i-beam.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient10554">
|
||||
<stop
|
||||
style="stop-color:white;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10556" />
|
||||
<stop
|
||||
style="stop-color:white;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop10558" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient124">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop125" />
|
||||
<stop
|
||||
style="stop-color:silver;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop126" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient8773">
|
||||
<stop
|
||||
style="stop-color:black;stop-opacity:0.3137255"
|
||||
offset="0"
|
||||
id="stop8775" />
|
||||
<stop
|
||||
style="stop-color:black;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop8777" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient14473"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-137.34366,-352.57235)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient14475"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2,0,0,0.5,-20.55174,-11.55357)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient14477"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.833516,0,0,1.199737,2.4375,-23.45032)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient14479"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient14481"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.125001,0,0,1.125001,-202.51184,-408.14432)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient14483"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.9377063,0,0,1.3497053,-220.82833,-410.36528)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient14485"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.8939146,2.0648066,-0.5162016,0.2234786,-220.82833,-410.36529)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient14487"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient14489"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-144.34366,-395.57235)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient14491"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.6670334,0,0,2.399476,-491.25039,-801.09382)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient14493"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5891814,3.6707672,-0.9176918,0.3972953,-491.25038,-801.09383)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient14495"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient7954"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient7960"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3333333,0,0,1.3333333,-220.12487,-531.76312)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient7963"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.1113546,0,0,1.5996493,-241.83329,-534.39538)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient7966"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0594534,2.447176,-0.611794,0.2648633,-241.83329,-534.39539)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient8746"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8748"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0594534,2.447176,-0.611794,0.2648633,-241.83329,-534.39539)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8750"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.1113546,0,0,1.5996493,-241.83329,-534.39538)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8752"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3333333,0,0,1.3333333,-220.12487,-531.76312)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8755"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3333333,0,0,1.3333333,-220.1248,-531.60971)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8758"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.1113546,0,0,1.5996493,-241.83322,-534.24197)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8761"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0594534,2.447176,-0.611794,0.2648633,-241.83322,-534.24198)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8771"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0594534,2.447176,-0.611794,0.2648633,-241.83322,-534.24198)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8773"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.1113546,0,0,1.5996493,-241.83322,-534.24197)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8775"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3333333,0,0,1.3333333,-220.1248,-531.60971)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8778"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3333333,0,0,1.3333333,-220.3124,-531.60971)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8781"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.1113546,0,0,1.5996493,-242.02082,-534.24197)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8784"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0594534,2.447176,-0.611794,0.2648633,-242.02082,-534.24198)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient8830"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8832"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5891814,3.6707672,-0.9176918,0.3972953,-491.25038,-801.09383)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8834"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.6670334,0,0,2.399476,-491.25039,-801.09382)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8836"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-144.34366,-395.57235)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient8838"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8840"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0594534,2.447176,-0.611794,0.2648633,-242.02082,-534.24198)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8842"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.1113546,0,0,1.5996493,-242.02082,-534.24197)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8844"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.3333333,0,0,1.3333333,-220.3124,-531.60971)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8855"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-144.34366,-395.57235)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8858"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.6670334,0,0,2.399476,-491.25039,-801.09382)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8861"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.5891814,3.6707672,-0.9176918,0.3972953,-491.25038,-801.09383)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="linearGradient8753"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2,0,0,0.5,-20.55174,-11.55357)"
|
||||
x1="253.75711"
|
||||
y1="-129.52815"
|
||||
x2="252.00447"
|
||||
y2="-135.47408" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient124"
|
||||
id="radialGradient8755"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.833516,0,0,1.199737,2.4375,-23.45032)"
|
||||
cx="307.7507"
|
||||
cy="361.47824"
|
||||
fx="307.7507"
|
||||
fy="361.47824"
|
||||
r="12.509617" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10554"
|
||||
id="linearGradient8757"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-137.34366,-378.85608)"
|
||||
x1="240.9062"
|
||||
y1="425.18195"
|
||||
x2="248.28683"
|
||||
y2="437.96558" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient8767"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient8778"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8773"
|
||||
id="radialGradient8788"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.234973,0,18.5877)"
|
||||
cx="-57.850174"
|
||||
cy="24.296782"
|
||||
fx="-58.028885"
|
||||
fy="27.01318"
|
||||
r="8.087534" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
gridtolerance="10000"
|
||||
guidetolerance="10"
|
||||
objecttolerance="10"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="32"
|
||||
inkscape:cx="135.70823"
|
||||
inkscape:cy="18.300078"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer4"
|
||||
showgrid="true"
|
||||
inkscape:snap-nodes="false"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:snap-global="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:window-width="1670"
|
||||
inkscape:window-height="973"
|
||||
inkscape:window-x="1285"
|
||||
inkscape:window-y="48">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid13478"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
spacingx="0.5px"
|
||||
spacingy="0.5px"
|
||||
empspacing="2" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="artwork:tool-i-beam"
|
||||
style="display:inline">
|
||||
<path
|
||||
transform="matrix(0.989175,0,0,1.31555,164.72395,56.536408)"
|
||||
d="M -49.76264,24.296782 A 8.087534,1.9003495 0 1 1 -65.937708,24.296782 A 8.087534,1.9003495 0 1 1 -49.76264,24.296782 z"
|
||||
sodipodi:ry="1.9003495"
|
||||
sodipodi:rx="8.087534"
|
||||
sodipodi:cy="24.296782"
|
||||
sodipodi:cx="-57.850174"
|
||||
id="path8771"
|
||||
style="opacity:0.7;fill:url(#radialGradient14479);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
||||
sodipodi:type="arc" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer4"
|
||||
inkscape:label="plate#1"
|
||||
style="display:none"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:3.7750001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline"
|
||||
id="rect72"
|
||||
width="24"
|
||||
height="24"
|
||||
x="96"
|
||||
y="68" />
|
||||
<rect
|
||||
y="69"
|
||||
x="97"
|
||||
height="22"
|
||||
width="22"
|
||||
id="rect14465"
|
||||
style="fill:#000000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:3.7750001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:3.7750001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline"
|
||||
id="rect7973"
|
||||
width="16"
|
||||
height="16"
|
||||
x="124"
|
||||
y="76.009514" />
|
||||
<rect
|
||||
y="60"
|
||||
x="60"
|
||||
height="32"
|
||||
width="32"
|
||||
id="rect8763"
|
||||
style="fill:#000000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:3.7750001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
|
||||
<rect
|
||||
y="44"
|
||||
x="8"
|
||||
height="48"
|
||||
width="48"
|
||||
id="rect8782"
|
||||
style="fill:#000000;fill-opacity:0.50196078;fill-rule:evenodd;stroke:none;stroke-width:3.7750001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;display:inline" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#eeeeec;fill-rule:evenodd;stroke:#888a85;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="M 104.5,71.505242 C 104,71.505242 103.5,72.005242 103.5,72.5 C 103.5,73.005242 104,73.505242 104.5,73.505242 L 105.5,73.505242 C 106,73.505242 106.5,74.005242 106.5,74.505242 L 106.5,85.5 C 106.5,86 106,86.5 105.5,86.5 L 104.5,86.5 C 104,86.5 103.5,87 103.5,87.5 C 103.5,88.008876 104,88.5 104.5,88.5 L 106.5,88.5 C 107.02152,88.521523 107.5,88 107.5,87.5 C 107.5,88 108,88.5 108.5,88.5 L 110.5,88.490485 C 110.99999,88.488106 111.5,87.990485 111.5,87.5 C 111.5,86.990485 110.99998,86.485728 110.5,86.490485 L 109.5,86.5 C 109,86.5 108.5,86 108.5,85.5 L 108.5,74.505242 C 108.5,74.005242 109,73.505242 109.5,73.505242 L 110.5,73.5 C 110.99999,73.497379 111.5,73 111.5,72.515625 C 111.5,72 111,71.49869 110.5,71.5 L 108.5,71.505242 C 108,71.505242 107.5,72.005242 107.5,72.505242 C 107.5,72.005242 107,71.505242 106.5,71.505242 L 104.5,71.505242 z"
|
||||
id="path7969"
|
||||
sodipodi:nodetypes="cssccccssscccsssccccssscccs" />
|
||||
<path
|
||||
sodipodi:nodetypes="cssccccssscccsssccccssscccs"
|
||||
id="path7977"
|
||||
d="M 130.5,77.5 C 129.99037,77.5 129.5,78 129.5,78.5 C 129.5,79 130,79.5 130.5,79.5 L 130.5,79.5 C 131,79.5 131.5,80 131.5,80.5 L 131.5,87.5 C 131.5,88 131,88.5 130.5,88.5 L 130.5,88.5 C 130,88.5 129.5,89 129.5,89.5 C 129.5,90 130,90.5 130.5,90.5 L 131.5,90.5 C 132,90.5 132.5,90 132.5,89.5 C 132.5,90 133,90.5 133.5,90.5 L 134.5,90.5 C 135,90.5 135.5,90 135.5,89.5 C 135.5,89 135,88.5 134.5,88.5 L 134.5,88.5 C 134,88.5 133.5,88 133.5,87.5 L 133.5,80.5 C 133.5,80 134,79.5 134.5,79.5 L 134.5,79.5 C 135,79.5 135.5,79 135.5,78.5 C 135.5,78 135,77.5 134.5,77.5 L 133.5,77.5 C 133,77.5 132.5,78 132.5,78.5 C 132.5,78 132,77.5 131.5,77.5 L 130.5,77.5 z"
|
||||
style="fill:#eeeeec;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="opacity:0.7;fill:url(#radialGradient8778);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
||||
id="path8759"
|
||||
sodipodi:cx="-57.850174"
|
||||
sodipodi:cy="24.296782"
|
||||
sodipodi:rx="8.087534"
|
||||
sodipodi:ry="1.9003495"
|
||||
d="M -49.76264,24.296782 A 8.087534,1.9003495 0 1 1 -65.937708,24.296782 A 8.087534,1.9003495 0 1 1 -49.76264,24.296782 z"
|
||||
transform="matrix(1.3189,0,0,1.7540667,152.29859,44.715211)" />
|
||||
<path
|
||||
sodipodi:nodetypes="cssccccssscccsssccccssscccs"
|
||||
id="path8765"
|
||||
d="M 71.5,64.5 C 71,64.498835 70,65 70,66 C 70,67 71,67.5 71.5,67.5 L 73.5,67.5 C 74,67.5 74.5,68 74.5,68.506989 L 74.5,83.166666 C 74.5,83.833333 73.83333,84.5 73.16667,84.5 L 71.5,84.5 C 71,84.5 70,85 70,86 C 70,87 71,87.5 71.5,87.5 L 74.5,87.5 C 75.5,87.5 76,86.5 76,86 C 76,86.5 76.5,87.5 77.5,87.5 L 80.5,87.5 C 81,87.5 82,87 82,86 C 82,85 81,84.5 80.5,84.5 L 78.5,84.5 C 77.83333,84.5 77.5,83.826344 77.5,83.159677 L 77.5,68.5 C 77.5,68 78,67.5 78.5,67.5 L 80.5,67.5 C 81,67.5 82,67 82,66 C 82,65 81,64.5 80.5,64.5 L 77.5,64.5 C 76.5,64.5 76,65.5 76,66 C 76,65.5 75.5,64.5 74.5,64.506989 L 71.5,64.5 z"
|
||||
style="fill:#eeeeec;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="opacity:0.7;fill:url(#radialGradient8788);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
|
||||
id="path8780"
|
||||
sodipodi:cx="-57.850174"
|
||||
sodipodi:cy="24.296782"
|
||||
sodipodi:rx="8.087534"
|
||||
sodipodi:ry="1.9003495"
|
||||
d="M -49.76264,24.296782 A 8.087534,1.9003495 0 1 1 -65.937708,24.296782 A 8.087534,1.9003495 0 1 1 -49.76264,24.296782 z"
|
||||
transform="matrix(1.97835,0,0,2.6311,145.94789,21.072816)" />
|
||||
<path
|
||||
sodipodi:nodetypes="cssccccssscccsssccccssscccs"
|
||||
id="path8786"
|
||||
d="M 25.5,50.509196 C 24.5,50.509196 23.5,51.509196 23.5,52.498712 C 23.5,53.509196 24.5,54.509196 25.5,54.509196 L 27.5,54.509196 C 28.5,54.509196 29.5,55.509196 29.5,56.509196 L 29.5,78.498712 C 29.5,79.498712 28.5,80.498712 27.5,80.498712 L 25.5,80.498712 C 24.5,80.498712 23.5,81.498712 23.5,82.498712 C 23.5,83.516464 24.5,84.498712 25.5,84.498712 L 29.5,84.498712 C 30.54304,84.541758 31.5,83.498712 31.5,82.498712 C 31.5,83.498712 32.5,84.498712 33.5,84.498712 L 37.5,84.479682 C 38.49998,84.474924 39.5,83.479682 39.5,82.498712 C 39.5,81.479682 38.49996,80.470168 37.5,80.479682 L 35.5,80.498712 C 34.5,80.498712 33.5,79.498712 33.5,78.498712 L 33.5,56.509196 C 33.5,55.509196 34.5,54.509196 35.5,54.509196 L 37.5,54.498712 C 38.49998,54.49347 39.5,53.498712 39.5,52.529962 C 39.5,51.498712 38.5,50.496092 37.5,50.498712 L 33.5,50.509196 C 32.5,50.509196 31.5,51.509196 31.5,52.509196 C 31.5,51.509196 30.5,50.509196 29.5,50.509196 L 25.5,50.509196 z"
|
||||
style="fill:#eeeeec;fill-rule:evenodd;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 26 KiB |
|
|
@ -40,11 +40,11 @@ liblumicommon_a_SOURCES = \
|
|||
noinst_HEADERS += \
|
||||
$(liblumicommon_a_srcdir)/cmdline.hpp \
|
||||
$(liblumicommon_a_srcdir)/factory.hpp \
|
||||
$(liblumicommon_a_srcdir)/frameid.hpp \
|
||||
$(liblumicommon_a_srcdir)/singleton.hpp \
|
||||
$(liblumicommon_a_srcdir)/singletonpolicies.hpp \
|
||||
$(liblumicommon_a_srcdir)/singletonpreconfigure.hpp \
|
||||
$(liblumicommon_a_srcdir)/lumitime.hpp \
|
||||
$(liblumicommon_a_srcdir)/typelist.hpp \
|
||||
$(liblumicommon_a_srcdir)/visitor.hpp \
|
||||
$(liblumicommon_a_srcdir)/visitordispatcher.hpp \
|
||||
$(liblumicommon_a_srcdir)/visitorpolicies.hpp \
|
||||
|
|
@ -56,7 +56,10 @@ noinst_HEADERS += \
|
|||
$(liblumicommon_a_srcdir)/query/mockconfigrules.hpp \
|
||||
$(liblumicommon_a_srcdir)/singletonfactory.hpp \
|
||||
$(liblumicommon_a_srcdir)/singletonsubclass.hpp \
|
||||
$(liblumicommon_a_srcdir)/typelistutil.hpp \
|
||||
$(liblumicommon_a_srcdir)/meta/typelist.hpp \
|
||||
$(liblumicommon_a_srcdir)/meta/configflags.hpp \
|
||||
$(liblumicommon_a_srcdir)/meta/generator.hpp \
|
||||
$(liblumicommon_a_srcdir)/meta/typelistutil.hpp \
|
||||
$(liblumicommon_a_srcdir)/util.hpp \
|
||||
$(liblumicommon_a_srcdir)/test/mockinjector.hpp \
|
||||
$(liblumicommon_a_srcdir)/test/suite.hpp \
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ namespace util
|
|||
|
||||
/** create as a tokenized <i>copy</i> of the current commandline.
|
||||
* Note that argv[0] is allways ignored. */
|
||||
Cmdline::Cmdline (int argc, char* argv[])
|
||||
Cmdline::Cmdline (int argc, const char** argv)
|
||||
: vector<string> (noneg(argc-1))
|
||||
{
|
||||
for (int i=1; i<argc; ++i)
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ namespace util
|
|||
class Cmdline : public VectS
|
||||
{
|
||||
public:
|
||||
Cmdline (int argc, char* argv[]);
|
||||
Cmdline (int argc, const char** argv);
|
||||
explicit Cmdline (const string cmdline);
|
||||
|
||||
operator string () const;
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@
|
|||
|
||||
#include "common/p.hpp"
|
||||
#include "common/query.hpp"
|
||||
#include "common/typelistutil.hpp"
|
||||
#include "common/meta/generator.hpp"
|
||||
#include "common/singletonsubclass.hpp"
|
||||
|
||||
//TODO: is it sensible to bring in the types explicitly here? (it's not necessary, but may be convenient...)
|
||||
|
|
|
|||
|
|
@ -128,10 +128,12 @@ namespace lumiera
|
|||
{
|
||||
const Error* err=dynamic_cast<const Error*> (&cause);
|
||||
if (err)
|
||||
if (isnil (err->cause_))
|
||||
return cause.what(); // cause is root cause
|
||||
else
|
||||
return err->cause_; // cause was caused by another exception
|
||||
{
|
||||
if (isnil (err->cause_))
|
||||
return cause.what(); // cause is root cause
|
||||
else
|
||||
return err->cause_; // cause was caused by another exception
|
||||
}
|
||||
|
||||
// unknown other exception type
|
||||
return cause.what ();
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
FRAME.hpp - Key Abstraction: render process and buffer holding frame data.
|
||||
FRAMEID.hpp - distinct identification of a single data frame
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2008, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
|
@ -21,26 +21,36 @@
|
|||
*/
|
||||
|
||||
|
||||
#ifndef PROC_INTERFACE_FRAME_H
|
||||
#define PROC_INTERFACE_FRAME_H
|
||||
#ifndef LUMIERA_FRAMEID_H
|
||||
#define LUMIERA_FRAMEID_H
|
||||
|
||||
|
||||
|
||||
namespace proc_interface
|
||||
namespace lumiera
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* TODO: how to relate to Cehteh's Frame entity in the Backend?
|
||||
* The latter is the fundamental Frame entity, wheras this Object
|
||||
* rather represents a buffer set containing frame date.
|
||||
* Identification tuple for addressing frames unambiguosly.
|
||||
*
|
||||
* @todo currently (7/08) this is a dummy implementation to find out
|
||||
* what interface the Proc layer needs. Probably the backend will
|
||||
* later on define what is actually needed; this header should then
|
||||
* be replaced by a combined C/C++ header
|
||||
*/
|
||||
class Frame
|
||||
class FrameID : boost::totally_ordered<FrameID>
|
||||
{
|
||||
/////////////////
|
||||
long dummy;
|
||||
public:
|
||||
FrameID(long dum=0) : dummy(dum) {}
|
||||
operator long () { return dummy; }
|
||||
|
||||
bool operator< (const FrameID& of) const { return dummy < of.dummy; }
|
||||
bool operator== (const FrameID& of) const { return dummy == of.dummy; }
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace proc_interface
|
||||
|
||||
|
||||
|
||||
} // namespace lumiera
|
||||
#endif
|
||||
191
src/common/meta/configflags.hpp
Normal file
|
|
@ -0,0 +1,191 @@
|
|||
/*
|
||||
CONFIGFLAGS.hpp - Building classes based on configuration cases
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2008, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
||||
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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/** @file configflags.hpp
|
||||
** Under some circumstances it is necessary to assemble functionality
|
||||
** out of elementary building blocks. Especially, this assembly can be
|
||||
** expressed as template specialisations directed by a configuration type.
|
||||
** Thus, the purpose of this header is to encode flag-like configuraitons
|
||||
** as distinct types, which can be used to select such specialisations.
|
||||
** Each possible configuration can be encoded as a list of flags, which allows
|
||||
** to generate, filter and process those configurations. The final goal is to
|
||||
** automatically generate a factory which is able to deliver objects
|
||||
** configured according to the situation encoded in the flags.
|
||||
**
|
||||
** @note currently there is an inherent limitation to configurations defined by
|
||||
** a maximum of 5 independant flags. While it is easy to increase this limit,
|
||||
** you should consider that the final goal is to genarate template instantiations,
|
||||
** which would lead to more and more code bloat with growing number of possible
|
||||
** combination.
|
||||
**
|
||||
** @see proc::engine::config::Strategy usage example
|
||||
** @see proc::engine::config::ConfigSelector
|
||||
** @see typelist.hpp
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#ifndef LUMIERA_META_CONFIGFLAGS_H
|
||||
#define LUMIERA_META_CONFIGFLAGS_H
|
||||
|
||||
|
||||
#include "common/meta/typelist.hpp"
|
||||
|
||||
|
||||
namespace lumiera {
|
||||
namespace typelist {
|
||||
|
||||
const size_t CONFIG_FLAGS_MAX = 5;
|
||||
|
||||
|
||||
template<char bit> struct Flag { typedef Flag ID; };
|
||||
template<> struct Flag<0> { typedef NullType ID; };
|
||||
|
||||
|
||||
template< char f1=0
|
||||
, char f2=0
|
||||
, char f3=0
|
||||
, char f4=0
|
||||
, char f5=0
|
||||
>
|
||||
struct Flags
|
||||
{
|
||||
typedef typename Types< typename Flag<f1>::ID
|
||||
, typename Flag<f2>::ID
|
||||
, typename Flag<f3>::ID
|
||||
, typename Flag<f4>::ID
|
||||
, typename Flag<f5>::ID
|
||||
>::List
|
||||
Tuple;
|
||||
typedef Tuple List;
|
||||
};
|
||||
|
||||
|
||||
template< char f1=0
|
||||
, char f2=0
|
||||
, char f3=0
|
||||
, char f4=0
|
||||
, char f5=0
|
||||
>
|
||||
struct Config ///< distinct type representing a configuration
|
||||
{
|
||||
typedef typename Flags<f1,f2,f3,f4,f5>::Tuple Flags;
|
||||
typedef Flags List;
|
||||
};
|
||||
|
||||
|
||||
|
||||
template<char Fl, class CONF>
|
||||
struct ConfigSetFlag; ///< set (prepend) the Flag to the given config
|
||||
|
||||
template< char Fl
|
||||
, char f1
|
||||
, char f2
|
||||
, char f3
|
||||
, char f4
|
||||
, char IGN
|
||||
>
|
||||
struct ConfigSetFlag<Fl, Config<f1,f2,f3,f4,IGN> >
|
||||
{
|
||||
typedef typelist::Config<Fl,f1,f2,f3,f4> Config;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/** build a configuration type from a list-of-flags */
|
||||
template<class FLAGS, class CONF=typelist::Config<> >
|
||||
struct BuildConfigFromFlags
|
||||
{
|
||||
typedef CONF Config;
|
||||
typedef Config Type;
|
||||
};
|
||||
template<char Fl, class FLAGS, class CONF>
|
||||
struct BuildConfigFromFlags< Node<Flag<Fl>,FLAGS>, CONF>
|
||||
{
|
||||
typedef typename ConfigSetFlag< Fl
|
||||
, typename BuildConfigFromFlags<FLAGS,CONF>::Config
|
||||
>::Config Config;
|
||||
typedef Config Type;
|
||||
};
|
||||
/** create a configuration type for the given list-of-flags */
|
||||
template<class FLAGS>
|
||||
struct DefineConfigByFlags : BuildConfigFromFlags<FLAGS> { };
|
||||
|
||||
|
||||
/**
|
||||
* Helper for calculating values and for
|
||||
* invoking runtime code based on a given FlagTuple.
|
||||
* Can also be used on a Typelist of several Configs.
|
||||
* The latter case is typically used to invoke an operation
|
||||
* while ennumerating all Flag-Configurations defined in Code.
|
||||
* An example would be to build (at runtime) an dispatcher table.
|
||||
* Explanation: For the Case covering a List of Configs, we provide
|
||||
* a templated visitaion function, which can accept a functor object
|
||||
* to be invoked on each Configuration.
|
||||
*/
|
||||
template<class FLAGS>
|
||||
struct FlagInfo;
|
||||
|
||||
template<char ff, class FLAGS>
|
||||
struct FlagInfo<Node<Flag<ff>, FLAGS> >
|
||||
{
|
||||
enum{ BITS = MAX(ff, FlagInfo<FLAGS>::BITS)
|
||||
, CODE = (1<<ff) | FlagInfo<FLAGS>::CODE
|
||||
};
|
||||
};
|
||||
template<>
|
||||
struct FlagInfo<NullType>
|
||||
{
|
||||
enum{ BITS = 0
|
||||
, CODE = 0
|
||||
};
|
||||
|
||||
template<class FUNC>
|
||||
static typename FUNC::Ret
|
||||
accept (FUNC& functor)
|
||||
{
|
||||
return functor.done();
|
||||
}
|
||||
};
|
||||
template<class CONF, class TAIL>
|
||||
struct FlagInfo<Node<CONF, TAIL> >
|
||||
{
|
||||
typedef typename CONF::Flags ThisFlags;
|
||||
enum{ BITS = MAX (char(FlagInfo<ThisFlags>::BITS), char(FlagInfo<TAIL>::BITS))
|
||||
};
|
||||
|
||||
template<class FUNC>
|
||||
static typename FUNC::Ret
|
||||
accept (FUNC& functor)
|
||||
{
|
||||
functor.template visit<CONF>(FlagInfo<ThisFlags>::CODE);
|
||||
return FlagInfo<TAIL>::accept (functor);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace typelist
|
||||
|
||||
} // namespace lumiera
|
||||
#endif
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
TYPELISTUTIL.hpp - metaprogramming utilities for lists-of-types
|
||||
GENERATOR.hpp - metaprogramming utilities for generating classes and interfaces
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2008, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
|
@ -38,7 +38,7 @@ This code is heavily inspired by
|
|||
*/
|
||||
|
||||
|
||||
/** @file typelistutil.hpp
|
||||
/** @file generator.hpp
|
||||
** Helpers for working with lumiera::typelist::Types (i.e. lists-of-types).
|
||||
** The main purpose is to build interfaces and polymorphic implementations
|
||||
** (using virtual functions) based on templated Types or Collections of types,
|
||||
|
|
@ -50,10 +50,10 @@ This code is heavily inspired by
|
|||
*/
|
||||
|
||||
|
||||
#ifndef LUMIERA_TYPELISTUTIL_H
|
||||
#define LUMIERA_TYPELISTUTIL_H
|
||||
#ifndef LUMIERA_META_GENERATOR_H
|
||||
#define LUMIERA_META_GENERATOR_H
|
||||
|
||||
#include "common/typelist.hpp"
|
||||
#include "common/meta/typelist.hpp"
|
||||
|
||||
|
||||
|
||||
|
|
@ -196,42 +196,6 @@ namespace lumiera
|
|||
};
|
||||
|
||||
|
||||
/**
|
||||
* Metafunction counting the number of Types in the collection
|
||||
*/
|
||||
template<class TYPES>
|
||||
struct count;
|
||||
template<>
|
||||
struct count<NullType>
|
||||
{
|
||||
enum{ value = 0 };
|
||||
};
|
||||
template<class TY, class TYPES>
|
||||
struct count<Node<TY,TYPES> >
|
||||
{
|
||||
enum{ value = 1 + count<TYPES>::value };
|
||||
};
|
||||
|
||||
/**
|
||||
* Metafunction " max( sizeof(T) ) for T in TYPES "
|
||||
*/
|
||||
template<class TYPES>
|
||||
struct maxSize;
|
||||
template<>
|
||||
struct maxSize<NullType>
|
||||
{
|
||||
enum{ value = 0 };
|
||||
};
|
||||
template<class TY, class TYPES>
|
||||
struct maxSize<Node<TY,TYPES> >
|
||||
{
|
||||
enum{ thisval = sizeof(TY)
|
||||
, nextval = maxSize<TYPES>::value
|
||||
, value = nextval > thisval? nextval:thisval
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
} // namespace typelist
|
||||
|
||||
} // namespace lumiera
|
||||
|
|
@ -53,8 +53,8 @@ This code is heavily inspired by
|
|||
*/
|
||||
|
||||
|
||||
#ifndef LUMIERA_TYPELIST_H
|
||||
#define LUMIERA_TYPELIST_H
|
||||
#ifndef LUMIERA_META_TYPELIST_H
|
||||
#define LUMIERA_META_TYPELIST_H
|
||||
|
||||
|
||||
|
||||
|
|
@ -64,11 +64,15 @@ namespace lumiera
|
|||
namespace typelist
|
||||
{
|
||||
|
||||
class NullType { };
|
||||
class NullType
|
||||
{
|
||||
typedef NullType List;
|
||||
};
|
||||
|
||||
template<class H, class T>
|
||||
struct Node
|
||||
{
|
||||
typedef Node List;
|
||||
typedef H Head;
|
||||
typedef T Tail;
|
||||
};
|
||||
|
|
@ -113,6 +117,8 @@ namespace lumiera
|
|||
};
|
||||
|
||||
|
||||
typedef Node<NullType,NullType> NodeNull;
|
||||
|
||||
|
||||
} // namespace typelist
|
||||
|
||||
213
src/common/meta/typelistutil.hpp
Normal file
|
|
@ -0,0 +1,213 @@
|
|||
/*
|
||||
TYPELISTUTIL.hpp - Utils for working with lists-of-types
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2008, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
||||
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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#ifndef LUMIERA_META_TYPELISTUTIL_H
|
||||
#define LUMIERA_META_TYPELISTUTIL_H
|
||||
|
||||
|
||||
|
||||
#include "common/meta/typelist.hpp"
|
||||
|
||||
namespace lumiera {
|
||||
namespace typelist {
|
||||
|
||||
|
||||
/**
|
||||
* Metafunction counting the number of Types in the collection
|
||||
*/
|
||||
template<class TYPES>
|
||||
struct count;
|
||||
template<>
|
||||
struct count<NullType>
|
||||
{
|
||||
enum{ value = 0 };
|
||||
};
|
||||
template<class TY, class TYPES>
|
||||
struct count<Node<TY,TYPES> >
|
||||
{
|
||||
enum{ value = 1 + count<TYPES>::value };
|
||||
};
|
||||
|
||||
/**
|
||||
* Metafunction " max( sizeof(T) ) for T in TYPES "
|
||||
*/
|
||||
template<class TYPES>
|
||||
struct maxSize;
|
||||
template<>
|
||||
struct maxSize<NullType>
|
||||
{
|
||||
enum{ value = 0 };
|
||||
};
|
||||
template<class TY, class TYPES>
|
||||
struct maxSize<Node<TY,TYPES> >
|
||||
{
|
||||
enum{ thisval = sizeof(TY)
|
||||
, nextval = maxSize<TYPES>::value
|
||||
, value = nextval > thisval? nextval:thisval
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/** apply a transformation (template) to each type in the list */
|
||||
template<class TY, template<class> class _TRANS_>
|
||||
struct Apply { typedef TY List; };
|
||||
|
||||
template< class TY, class TYPES
|
||||
, template<class> class _TRANS_
|
||||
>
|
||||
struct Apply<Node<TY,TYPES>, _TRANS_ > { typedef Node< typename _TRANS_<TY>::Type
|
||||
, typename Apply<TYPES,_TRANS_>::List
|
||||
> List; };
|
||||
|
||||
|
||||
template<bool, class T, class TAIL>
|
||||
struct CondNode { typedef TAIL Next; };
|
||||
|
||||
template<class T, class TAIL>
|
||||
struct CondNode<true, T, TAIL> { typedef Node<T,TAIL> Next; };
|
||||
|
||||
/** filter away those types which don't fulfill a predicate metafunction */
|
||||
template< class TYPES
|
||||
, template<class> class _P_ ///< a template providing a boolean member \c ::value
|
||||
>
|
||||
struct Filter;
|
||||
|
||||
template<template<class> class _P_>
|
||||
struct Filter<NullType,_P_> { typedef NullType List; };
|
||||
|
||||
template< class TY, class TYPES
|
||||
, template<class> class _P_
|
||||
>
|
||||
struct Filter<Node<TY,TYPES>,_P_> { typedef typename CondNode< _P_<TY>::value
|
||||
, TY
|
||||
, typename Filter<TYPES,_P_>::List
|
||||
>::Next
|
||||
List; };
|
||||
|
||||
|
||||
/** append lists-of-types */
|
||||
template<class TY1, class TY2>
|
||||
struct Append { typedef Node<TY1, typename Append<TY2,NullType>::List> List; };
|
||||
|
||||
template< class TY, class TYPES
|
||||
, class TAIL
|
||||
>
|
||||
struct Append<Node<TY,TYPES>, TAIL> { typedef Node<TY, typename Append<TYPES, TAIL>::List> List; };
|
||||
|
||||
template<class TY, class TYPES>
|
||||
struct Append<NullType, Node<TY,TYPES> > { typedef Node<TY,TYPES> List; };
|
||||
|
||||
template<class TY, class TYPES>
|
||||
struct Append<Node<TY,TYPES>, NullType> { typedef Node<TY,TYPES> List; };
|
||||
|
||||
template<class TY1>
|
||||
struct Append<TY1,NullType> { typedef Node<TY1,NullType> List; };
|
||||
|
||||
template<class TY2>
|
||||
struct Append<NullType,TY2> { typedef Node<TY2,NullType> List; };
|
||||
|
||||
template<>
|
||||
struct Append<NullType,NullType> { typedef NullType List; };
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* prefix each of the elements,
|
||||
* yielding a list-of lists-of-types
|
||||
*/
|
||||
template<class T, class TY>
|
||||
struct PrefixAll { typedef Node< typename Append<T,TY>::List, NullType> List; };
|
||||
|
||||
template<class T>
|
||||
struct PrefixAll<T, NullType> { typedef NullType List; };
|
||||
|
||||
template<class T>
|
||||
struct PrefixAll<T, NodeNull> { typedef Node< typename Append<T,NodeNull>::List, NullType> List; };
|
||||
|
||||
template< class T
|
||||
, class TY, class TYPES
|
||||
>
|
||||
struct PrefixAll<T, Node<TY,TYPES> > { typedef Node< typename Append<T,TY>::List
|
||||
, typename PrefixAll<T,TYPES>::List
|
||||
> List; };
|
||||
|
||||
|
||||
|
||||
|
||||
template<class TY1,class TY2>
|
||||
struct Distribute { typedef typename PrefixAll<TY1,TY2>::List List; };
|
||||
|
||||
template<class TY>
|
||||
struct Distribute<NullType,TY> { typedef NullType List; };
|
||||
|
||||
template< class TY, class TYPES
|
||||
, class TAIL
|
||||
>
|
||||
struct Distribute<Node<TY,TYPES>,TAIL> { typedef typename Append< typename PrefixAll<TY,TAIL>::List
|
||||
, typename Distribute<TYPES,TAIL>::List
|
||||
>::List
|
||||
List; };
|
||||
|
||||
|
||||
|
||||
/** use a permutation generator
|
||||
* for creating a list of all possible combinations
|
||||
*/
|
||||
template< class X
|
||||
, template<class> class _PERMU_>
|
||||
struct Combine { typedef typename Distribute< typename _PERMU_<X>::List
|
||||
, Node<NullType,NullType>
|
||||
>::List List; };
|
||||
template< template<class> class _PERMU_>
|
||||
struct Combine<NullType, _PERMU_ > { typedef Node<NullType,NullType> List; };
|
||||
|
||||
template< class TY, class TYPES
|
||||
, template<class> class _PERMU_>
|
||||
struct Combine<Node<TY,TYPES>,_PERMU_> { typedef typename Distribute< typename _PERMU_<TY>::List
|
||||
, typename Combine<TYPES,_PERMU_>::List
|
||||
>::List List; };
|
||||
|
||||
/** permutation generator for the Combine metafunction,
|
||||
* yielding an "on" and "off" case
|
||||
*/
|
||||
template<class F>
|
||||
struct FlagOnOff
|
||||
{
|
||||
typedef Node<F, Node<NullType,NullType> > List;
|
||||
};
|
||||
|
||||
|
||||
/** generate all possible on-off combinations of the given flags */
|
||||
template<class FLAGS>
|
||||
struct CombineFlags
|
||||
{
|
||||
typedef typename Combine<FLAGS, FlagOnOff>::List List;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
} // namespace typelist
|
||||
|
||||
} // namespace lumiera
|
||||
#endif
|
||||
76
src/common/meta/util.hpp
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
/*
|
||||
UTIL.hpp - metaprogramming helpers and utilities
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2008, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
||||
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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#ifndef LUMIERA_META_UTIL_H
|
||||
#define LUMIERA_META_UTIL_H
|
||||
|
||||
|
||||
|
||||
namespace lumiera {
|
||||
|
||||
|
||||
/* types for figuring out the overload resolution chosen by the compiler */
|
||||
|
||||
typedef char Yes_t;
|
||||
struct No_t { char padding[8]; };
|
||||
|
||||
|
||||
|
||||
namespace typelist {
|
||||
|
||||
/** semi-automatic detection if an instantiation is possible.
|
||||
* Requires help by the template to be tested, which needs to define
|
||||
* a typedef member \c is_defined. The embedded metafunction Test can be used
|
||||
* as a predicate for filtering types which may yield a valid instantiation
|
||||
* of the candidate template in question.
|
||||
* \par
|
||||
* A fully automated solution for this problem is impossible by theoretic reasons.
|
||||
* Any non trivial use of such a \c is_defined trait would break the "One Definition Rule",
|
||||
* as the state of any type can change from "partially defined" to "fully defined" over
|
||||
* the course of any translation unit. Thus, even if there may be a \em solution out there,
|
||||
* we can expect it to break at some point by improvements/fixes to the C++ Language.
|
||||
*/
|
||||
template<template<class> class _CandidateTemplate_>
|
||||
struct Instantiation
|
||||
{
|
||||
|
||||
template<class X>
|
||||
class Test
|
||||
{
|
||||
typedef _CandidateTemplate_<X> Instance;
|
||||
|
||||
template<class U>
|
||||
static Yes_t check(typename U::is_defined *);
|
||||
template<class U>
|
||||
static No_t check(...);
|
||||
|
||||
public:
|
||||
static const bool value = (sizeof(Yes_t)==sizeof(check<Instance>(0)));
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
} // namespace typelist
|
||||
|
||||
} // namespace lumiera
|
||||
#endif
|
||||
|
|
@ -237,4 +237,8 @@ namespace util
|
|||
* and we probably will enforce this design rule in future. */
|
||||
#define INSTANCEOF(CLASS, EXPR) (dynamic_cast<const CLASS*> (EXPR))
|
||||
|
||||
/** the inevitalbe MAX macro, sometimes still necessary in template code */
|
||||
#define MAX(A,B) (A < B) ? (B) : (A)
|
||||
|
||||
|
||||
#endif /*UTIL_HPP_*/
|
||||
|
|
|
|||
|
|
@ -41,7 +41,8 @@
|
|||
#define LUMIERA_VARIANT_H
|
||||
|
||||
|
||||
#include "common/typelistutil.hpp"
|
||||
#include "common/meta/typelistutil.hpp"
|
||||
#include "common/meta/generator.hpp"
|
||||
|
||||
#include <boost/noncopyable.hpp>
|
||||
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ Credits for many further implementation ideas go to
|
|||
#include "common/visitorpolicies.hpp"
|
||||
#include "common/visitordispatcher.hpp"
|
||||
|
||||
#include "common/typelist.hpp"
|
||||
#include "common/meta/typelist.hpp"
|
||||
|
||||
|
||||
namespace lumiera
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
#include "common/variant.hpp"
|
||||
#include "common/accesscasted.hpp"
|
||||
|
||||
#include "common/typelist.hpp"
|
||||
#include "common/meta/typelist.hpp"
|
||||
#include "proc/mobject/placement.hpp"
|
||||
#include "common/p.hpp"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright (C) Lumiera.org
|
||||
# 2007, Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||
# Copyright (C) Lumiera.org
|
||||
# 2007, Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
|
|
@ -22,74 +22,69 @@ lumigui_srcdir = $(top_srcdir)/src/gui
|
|||
#lumigui_CPPFLAGS = -I$(top_srcdir)/src/
|
||||
|
||||
INCLUDES = \
|
||||
-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
|
||||
-DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
|
||||
-DPACKAGE_DATA_DIR=\""$(datadir)"\" \
|
||||
-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
|
||||
-DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
|
||||
-DPACKAGE_DATA_DIR=\""$(datadir)"\" \
|
||||
$(GTK_LUMIERA_CFLAGS)
|
||||
|
||||
bin_PROGRAMS += lumigui
|
||||
|
||||
lumigui_SOURCES = \
|
||||
$(lumigui_srcdir)/gtk-lumiera.cpp \
|
||||
$(lumigui_srcdir)/gtk-lumiera.hpp \
|
||||
$(lumigui_srcdir)/window-manager.cpp \
|
||||
$(lumigui_srcdir)/window-manager.hpp \
|
||||
$(lumigui_srcdir)/workspace/actions.cpp \
|
||||
$(lumigui_srcdir)/workspace/actions.hpp \
|
||||
$(lumigui_srcdir)/workspace/workspace-window.cpp \
|
||||
$(lumigui_srcdir)/workspace/workspace-window.hpp \
|
||||
$(lumigui_srcdir)/dialogs/render.cpp \
|
||||
$(lumigui_srcdir)/dialogs/render.hpp \
|
||||
$(lumigui_srcdir)/dialogs/preferences-dialog.cpp \
|
||||
$(lumigui_srcdir)/dialogs/preferences-dialog.hpp \
|
||||
$(lumigui_srcdir)/panels/panel.cpp \
|
||||
$(lumigui_srcdir)/panels/panel.hpp \
|
||||
$(lumigui_srcdir)/panels/timeline-panel.cpp \
|
||||
$(lumigui_srcdir)/panels/timeline-panel.hpp \
|
||||
$(lumigui_srcdir)/panels/viewer-panel.cpp \
|
||||
$(lumigui_srcdir)/panels/viewer-panel.hpp \
|
||||
$(lumigui_srcdir)/panels/assets-panel.cpp \
|
||||
$(lumigui_srcdir)/panels/asset-panels.hpp \
|
||||
$(lumigui_srcdir)/widgets/video-display-widget.cpp \
|
||||
$(lumigui_srcdir)/widgets/video-display-widget.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline-widget.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline-widget.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/header-container.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/header-container.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/track.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/track.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/video-track.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/video-track.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-body.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-body.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-ruler.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-ruler.hpp \
|
||||
$(lumigui_srcdir)/model/project.cpp \
|
||||
$(lumigui_srcdir)/model/project.hpp \
|
||||
$(lumigui_srcdir)/output/displayer.cpp \
|
||||
$(lumigui_srcdir)/output/displayer.hpp \
|
||||
$(lumigui_srcdir)/output/gdkdisplayer.cpp \
|
||||
$(lumigui_srcdir)/output/gdkdisplayer.hpp \
|
||||
$(lumigui_srcdir)/output/xvdisplayer.cpp \
|
||||
$(lumigui_srcdir)/output/xvdisplayer.hpp
|
||||
lumigui_SOURCES = \
|
||||
$(lumigui_srcdir)/gtk-lumiera.cpp \
|
||||
$(lumigui_srcdir)/gtk-lumiera.hpp \
|
||||
$(lumigui_srcdir)/window-manager.cpp \
|
||||
$(lumigui_srcdir)/window-manager.hpp \
|
||||
$(lumigui_srcdir)/workspace/actions.cpp \
|
||||
$(lumigui_srcdir)/workspace/actions.hpp \
|
||||
$(lumigui_srcdir)/workspace/workspace-window.cpp \
|
||||
$(lumigui_srcdir)/workspace/workspace-window.hpp \
|
||||
$(lumigui_srcdir)/dialogs/render.cpp \
|
||||
$(lumigui_srcdir)/dialogs/render.hpp \
|
||||
$(lumigui_srcdir)/dialogs/preferences-dialog.cpp \
|
||||
$(lumigui_srcdir)/dialogs/preferences-dialog.hpp \
|
||||
$(lumigui_srcdir)/panels/panel.cpp \
|
||||
$(lumigui_srcdir)/panels/panel.hpp \
|
||||
$(lumigui_srcdir)/panels/timeline-panel.cpp \
|
||||
$(lumigui_srcdir)/panels/timeline-panel.hpp \
|
||||
$(lumigui_srcdir)/panels/viewer-panel.cpp \
|
||||
$(lumigui_srcdir)/panels/viewer-panel.hpp \
|
||||
$(lumigui_srcdir)/panels/assets-panel.cpp \
|
||||
$(lumigui_srcdir)/panels/asset-panels.hpp \
|
||||
$(lumigui_srcdir)/widgets/video-display-widget.cpp \
|
||||
$(lumigui_srcdir)/widgets/video-display-widget.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline-widget.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline-widget.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/header-container.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/header-container.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/track.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/track.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-body.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-body.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-ruler.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-ruler.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-tool.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-tool.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-arrow-tool.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-arrow-tool.hpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-ibeam-tool.cpp \
|
||||
$(lumigui_srcdir)/widgets/timeline/timeline-ibeam-tool.hpp \
|
||||
$(lumigui_srcdir)/model/project.cpp \
|
||||
$(lumigui_srcdir)/model/project.hpp \
|
||||
$(lumigui_srcdir)/output/displayer.cpp \
|
||||
$(lumigui_srcdir)/output/displayer.hpp \
|
||||
$(lumigui_srcdir)/output/gdkdisplayer.cpp \
|
||||
$(lumigui_srcdir)/output/gdkdisplayer.hpp \
|
||||
$(lumigui_srcdir)/output/xvdisplayer.cpp \
|
||||
$(lumigui_srcdir)/output/xvdisplayer.hpp
|
||||
|
||||
lumigui_LDFLAGS =
|
||||
lumigui_LDADD = $(GTK_LUMIERA_LIBS) liblumicommon.a liblumi.a
|
||||
|
||||
lumigui_DEPENDENCIES = \
|
||||
$(top_builddir)/lumiera_ui.rc \
|
||||
$(top_builddir)/assets-panel.png \
|
||||
$(top_builddir)/timeline-panel.png \
|
||||
$(top_builddir)/viewer-panel.png
|
||||
|
||||
lumigui_DEPENDENCIES = \
|
||||
$(top_builddir)/lumiera_ui.rc \
|
||||
$(top_builddir)/liblumicommon.a \
|
||||
$(top_builddir)/liblumi.a
|
||||
|
||||
$(top_builddir)/lumiera_ui.rc:
|
||||
cp $(lumigui_srcdir)/lumiera_ui.rc $(top_builddir)
|
||||
|
||||
$(top_builddir)/assets-panel.png:
|
||||
cp $(top_srcdir)/icons/assets-panel.png $(top_builddir)
|
||||
$(top_builddir)/timeline-panel.png:
|
||||
cp $(top_srcdir)/icons/timeline-panel.png $(top_builddir)
|
||||
$(top_builddir)/viewer-panel.png:
|
||||
cp $(top_srcdir)/icons/viewer-panel.png $(top_builddir)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
NOBUG_CPP_DEFINE_FLAG(gui);
|
||||
|
||||
using namespace Gtk;
|
||||
using namespace Glib;
|
||||
using namespace lumiera::gui;
|
||||
using namespace lumiera::gui::workspace;
|
||||
using namespace lumiera::gui::model;
|
||||
|
|
@ -43,39 +44,47 @@ GtkLumiera the_application;
|
|||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
return the_application.main(argc, argv);
|
||||
}
|
||||
{
|
||||
return the_application.main(argc, argv);
|
||||
}
|
||||
|
||||
|
||||
|
||||
namespace lumiera {
|
||||
namespace gui {
|
||||
|
||||
int
|
||||
GtkLumiera::main(int argc, char *argv[])
|
||||
{
|
||||
NOBUG_INIT;
|
||||
int
|
||||
GtkLumiera::main(int argc, char *argv[])
|
||||
{
|
||||
NOBUG_INIT;
|
||||
|
||||
Main kit(argc, argv);
|
||||
|
||||
Main kit(argc, argv);
|
||||
|
||||
Glib::set_application_name(AppTitle);
|
||||
Glib::set_application_name(AppTitle);
|
||||
|
||||
Project project;
|
||||
WindowManager window_manager;
|
||||
Project project;
|
||||
WindowManager window_manager;
|
||||
|
||||
window_manager.set_theme("lumiera_ui.rc");
|
||||
window_manager.set_theme("lumiera_ui.rc");
|
||||
|
||||
WorkspaceWindow main_window(&project);
|
||||
|
||||
kit.run(main_window);
|
||||
}
|
||||
WorkspaceWindow main_window(&project);
|
||||
|
||||
GtkLumiera&
|
||||
application()
|
||||
{
|
||||
return the_application;
|
||||
}
|
||||
kit.run(main_window);
|
||||
}
|
||||
|
||||
Glib::ustring
|
||||
GtkLumiera::get_home_data_path()
|
||||
{
|
||||
const ustring app_name("lumiera");
|
||||
const ustring path(Glib::get_home_dir());
|
||||
return ustring::compose("%1/.%2", path, app_name);
|
||||
}
|
||||
|
||||
GtkLumiera&
|
||||
application()
|
||||
{
|
||||
return the_application;
|
||||
}
|
||||
|
||||
} // namespace gui
|
||||
} // namespace lumiera
|
||||
|
|
|
|||
|
|
@ -51,51 +51,93 @@ NOBUG_DECLARE_FLAG(gui);
|
|||
#endif
|
||||
|
||||
namespace lumiera {
|
||||
|
||||
/**
|
||||
* The namespace of all GUI code.
|
||||
*/
|
||||
namespace gui {
|
||||
|
||||
/* ===== Global Constants ===== */
|
||||
|
||||
/**
|
||||
* The name of the application
|
||||
*/
|
||||
static const gchar* AppTitle = "Lumiera";
|
||||
/**
|
||||
* The name of the application
|
||||
*/
|
||||
static const gchar* AppTitle = "Lumiera";
|
||||
|
||||
/**
|
||||
* The version number of the application
|
||||
*/
|
||||
static const gchar* AppVersion = N_("0.1-dev");
|
||||
/**
|
||||
* The version number of the application
|
||||
*/
|
||||
static const gchar* AppVersion = N_("0.1-dev");
|
||||
|
||||
/**
|
||||
* The copyright of the application
|
||||
*/
|
||||
static const gchar* AppCopyright = N_("© 2008 The Lumiera Team");
|
||||
/**
|
||||
* The copyright of the application
|
||||
*/
|
||||
static const gchar* AppCopyright = N_("© 2008 The Lumiera Team");
|
||||
|
||||
/**
|
||||
* The website of the application
|
||||
*/
|
||||
static const gchar* AppWebsite = "www.lumiera.org";
|
||||
/**
|
||||
* The website of the application
|
||||
*/
|
||||
static const gchar* AppWebsite = "www.lumiera.org";
|
||||
|
||||
/**
|
||||
* An alphabetical list of the application's authors
|
||||
*/
|
||||
static const gchar* AppAuthors[] = {
|
||||
"Joel Holdsworth",
|
||||
"Christian Thaeter",
|
||||
"Hermann Vosseler",
|
||||
"<Other Authors Here>"};
|
||||
/**
|
||||
* An alphabetical list of the application's authors
|
||||
*/
|
||||
static const gchar* AppAuthors[] = {
|
||||
"Joel Holdsworth",
|
||||
"Christian Thaeter",
|
||||
"Hermann Vosseler",
|
||||
"<Other Authors Here>"};
|
||||
|
||||
/* ===== The Application Class ===== */
|
||||
|
||||
/**
|
||||
* The main application class.
|
||||
*/
|
||||
class GtkLumiera
|
||||
{
|
||||
public:
|
||||
int main(int argc, char *argv[]);
|
||||
/**
|
||||
* The main application class.
|
||||
*/
|
||||
class GtkLumiera
|
||||
{
|
||||
public:
|
||||
int main(int argc, char *argv[]);
|
||||
|
||||
static Glib::ustring get_home_data_path();
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns a reference to the global application object
|
||||
*/
|
||||
GtkLumiera& application();
|
||||
/**
|
||||
* Returns a reference to the global application object
|
||||
*/
|
||||
GtkLumiera& application();
|
||||
|
||||
/* ===== Namespace Definitions ===== */
|
||||
|
||||
/**
|
||||
* The namespace of all dialog box classes.
|
||||
*/
|
||||
namespace dialogs {}
|
||||
|
||||
/**
|
||||
* The namespace of data model classes.
|
||||
*/
|
||||
namespace model {}
|
||||
|
||||
/**
|
||||
* The namespace of all video output implementations.
|
||||
*/
|
||||
namespace output {}
|
||||
|
||||
/**
|
||||
* The namespace of all docking panel classes.
|
||||
*/
|
||||
namespace panels {}
|
||||
|
||||
/**
|
||||
* The namespace of all Lumiera custom widgets.
|
||||
*/
|
||||
namespace widgets {}
|
||||
|
||||
/**
|
||||
* The namespace of the workspace window, and it's helper classes.
|
||||
*/
|
||||
namespace workspace {}
|
||||
|
||||
} // namespace gui
|
||||
} // namespace lumiera
|
||||
|
|
|
|||
|
|
@ -124,6 +124,8 @@ class "GtkProgressBar" style:highest "lumiera_progressbars"
|
|||
style "timeline_body"
|
||||
{
|
||||
gtkmm__CustomObject_TimelineBody::background = "#7E838B"
|
||||
gtkmm__CustomObject_TimelineBody::selection = "#2D2D90"
|
||||
gtkmm__CustomObject_TimelineBody::selection_alpha = 0.5
|
||||
}
|
||||
|
||||
style "timeline_ruler" = "default_base"
|
||||
|
|
@ -137,16 +139,16 @@ style "timeline_ruler" = "default_base"
|
|||
gtkmm__CustomObject_TimelineRuler::annotation_vert_margin = 0
|
||||
gtkmm__CustomObject_TimelineRuler::min_division_width = 100
|
||||
gtkmm__CustomObject_TimelineRuler::mouse_chevron_size = 5
|
||||
gtkmm__CustomObject_TimelineRuler::selection_chevron_size = 5
|
||||
gtkmm__CustomObject_TimelineRuler::playback_arrow_colour = "#2D2D90"
|
||||
gtkmm__CustomObject_TimelineRuler::playback_arrow_alpha = 0.5
|
||||
gtkmm__CustomObject_TimelineRuler::playback_arrow_size = 10
|
||||
gtkmm__CustomObject_TimelineRuler::playback_arrow_stem_size = 3
|
||||
}
|
||||
|
||||
style "timeline_header_base" = "default_base"
|
||||
{
|
||||
# fg[NORMAL] = { 0.77, 0.77, 0.72 }
|
||||
# bg[NORMAL] = { 0.18, 0.19, 0.22 }
|
||||
# bg[ACTIVE] = { 0.20, 0.20, 0.20 }
|
||||
# bg[PRELIGHT] = { 0.20, 0.20, 0.20 }
|
||||
# bg[INSENSITIVE] = { 0.20, 0.20, 0.20 }
|
||||
# bg[SELECTED] = { 0.20, 0.20, 0.20 }
|
||||
|
||||
}
|
||||
|
||||
class "gtkmm__CustomObject_TimelineBody" style:highest "timeline_body"
|
||||
|
|
|
|||
|
|
@ -49,69 +49,74 @@ namespace output {
|
|||
}
|
||||
DisplayerInput;
|
||||
|
||||
/** A Displayer is a class which is responsible for rendering an image in some
|
||||
way (ie: Xvideo, GDK, OpenGL etc).
|
||||
|
||||
All Displayer classes must extend the Displayer class and minimally rewrite:
|
||||
|
||||
+ usable() - to indicate if the object can be used,
|
||||
+ format() - to indicate what type of input the put method expects
|
||||
+ put( void * ) - deal with an image of the expected type and size
|
||||
|
||||
By default, all images will be delivered to the put method in a resolution
|
||||
of IMG_WIDTH * IMG_HEIGHT. If another size is required, then the rewrite
|
||||
the methods:
|
||||
|
||||
+ preferredWidth
|
||||
+ preferredHeight
|
||||
|
||||
If the widget being written to doesn't need a fixed size, then rewrite
|
||||
the two other put methods as required.
|
||||
/**
|
||||
* A Displayer is a class which is responsible for rendering an image
|
||||
* in some way (ie: Xvideo, GDK, OpenGL etc).
|
||||
*
|
||||
* @remarks All Displayer classes must extend the Displayer class and
|
||||
* minimally rewrite:
|
||||
*
|
||||
* + usable() - to indicate if the object can be used,
|
||||
* + format() - to indicate what type of input the put method expects
|
||||
* + put( void * ) - deal with an image of the expected type and size
|
||||
*
|
||||
* By default, all images will be delivered to the put method in a
|
||||
* resolution of IMG_WIDTH * IMG_HEIGHT. If another size is required,
|
||||
* then the rewrite the methods:
|
||||
*
|
||||
* + preferredWidth
|
||||
* + preferredHeight
|
||||
*
|
||||
* If the widget being written to doesn't need a fixed size, then
|
||||
* rewrite the two other put methods as required.
|
||||
*/
|
||||
class Displayer
|
||||
{
|
||||
public:
|
||||
|
||||
/** Indicates if an object can be used to render images on the running
|
||||
system.
|
||||
/**
|
||||
* Indicates if an object can be used to render images on the
|
||||
* running system.
|
||||
*/
|
||||
virtual bool usable();
|
||||
|
||||
/** Indicates the format required by the abstract put method.
|
||||
/**
|
||||
* Indicates the format required by the abstract put method.
|
||||
*/
|
||||
virtual DisplayerInput format();
|
||||
|
||||
/** Expected width of input to put.
|
||||
/**
|
||||
* Expected width of input to put.
|
||||
*/
|
||||
virtual int preferredWidth();
|
||||
|
||||
/** Expected height of input to put.
|
||||
/**
|
||||
* Expected height of input to put.
|
||||
*/
|
||||
virtual int preferredHeight();
|
||||
|
||||
/**
|
||||
* Put an image of a given width and height with the expected input
|
||||
* format (as indicated by the format method).
|
||||
*
|
||||
* @param image image of correct format and specified width/height
|
||||
* Put an image of a given width and height with the expected input
|
||||
* format (as indicated by the format method).
|
||||
*/
|
||||
virtual void put( void * ) = 0;
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* Calculates the coordinates for placing a video image inside a widget
|
||||
* Calculates the coordinates for placing a video image inside a
|
||||
* widget
|
||||
*
|
||||
* @param[in] widget_width The width of the display widget
|
||||
* @param[in] widget_height The height of the display widget
|
||||
* @param[in] image_width The width of the video image
|
||||
* @param[in] image_height The height of the video image
|
||||
* @param[out] video_x The x-coordinate of the top left corner of
|
||||
* the scaled video image
|
||||
* @param[out] video_y The y-coordinate of the top left corner of
|
||||
* the scaled video image
|
||||
* @param[out] video_width The width of the scale video image
|
||||
* @param[out] video_height The height of the scale video image
|
||||
* @param[in] widget_width The width of the display widget.
|
||||
* @param[in] widget_height The height of the display widget.
|
||||
* @param[in] image_width The width of the video image.
|
||||
* @param[in] image_height The height of the video image.
|
||||
* @param[out] video_x The x-coordinate of the top left
|
||||
* corner of the scaled video image.
|
||||
* @param[out] video_y The y-coordinate of the top left
|
||||
* corner of the scaled video image.
|
||||
* @param[out] video_width The width of the scale video image.
|
||||
* @param[out] video_height The height of the scale video image.
|
||||
*/
|
||||
static void calculateVideoLayout(
|
||||
int widget_width, int widget_height,
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace gui {
|
|||
namespace panels {
|
||||
|
||||
AssetsPanel::AssetsPanel() :
|
||||
Panel("assets", _("Assets"), "assets_panel"),
|
||||
Panel("assets", _("Assets"), "panel_assets"),
|
||||
placeholder("Placeholder label. Is this supposed to be titled assets\nas in the proc layer? or resources\nas in cinelerra?")
|
||||
{
|
||||
pack_start(placeholder);
|
||||
|
|
|
|||
|
|
@ -27,68 +27,68 @@
|
|||
#ifndef PANEL_HPP
|
||||
#define PANEL_HPP
|
||||
|
||||
#include <gtkmm.h>
|
||||
#include "../gtk-lumiera.hpp"
|
||||
#include <libgdl-1.0/gdl/gdl-dock-item.h>
|
||||
|
||||
namespace lumiera {
|
||||
namespace gui {
|
||||
namespace panels {
|
||||
|
||||
/**
|
||||
* The main lumiera workspace window
|
||||
/**
|
||||
* The main lumiera panel window
|
||||
*/
|
||||
class Panel : public Gtk::VBox
|
||||
{
|
||||
protected:
|
||||
/**
|
||||
* Constructs a panel object
|
||||
* @param name The internal name of this panel
|
||||
* @param long_name The name to display on the caption
|
||||
* @param behavior The GDL behaviour of this item
|
||||
*/
|
||||
class Panel : public Gtk::VBox
|
||||
{
|
||||
protected:
|
||||
/**
|
||||
* Constructs a panel object
|
||||
* @param name The internal name of this panel
|
||||
* @param long_name The name to display on the caption
|
||||
* @param behavior The GDL behaviour of this item
|
||||
*/
|
||||
Panel(const gchar *name, const gchar *long_name,
|
||||
GdlDockItemBehavior behavior = GDL_DOCK_ITEM_BEH_NORMAL);
|
||||
Panel(const gchar *name, const gchar *long_name,
|
||||
GdlDockItemBehavior behavior = GDL_DOCK_ITEM_BEH_NORMAL);
|
||||
|
||||
/**
|
||||
* Constructs a panel object with a stock item for a caption
|
||||
* @param name The internal name of this panel
|
||||
* @param long_name The name to display on the caption
|
||||
* @param stock_id The id of the stock item to display on the caption
|
||||
* @param behavior The GDL behaviour of this item
|
||||
*/
|
||||
Panel(const gchar *name, const gchar *long_name, const gchar *stock_id,
|
||||
GdlDockItemBehavior behavior = GDL_DOCK_ITEM_BEH_NORMAL);
|
||||
/**
|
||||
* Constructs a panel object with a stock item for a caption
|
||||
* @param name The internal name of this panel
|
||||
* @param long_name The name to display on the caption
|
||||
* @param stock_id The id of the stock item to display on the caption
|
||||
* @param behavior The GDL behaviour of this item
|
||||
*/
|
||||
Panel(const gchar *name, const gchar *long_name, const gchar *stock_id,
|
||||
GdlDockItemBehavior behavior = GDL_DOCK_ITEM_BEH_NORMAL);
|
||||
|
||||
~Panel();
|
||||
~Panel();
|
||||
|
||||
public:
|
||||
/**
|
||||
* Returns a pointer to the underlying GdlDockItem structure
|
||||
*/
|
||||
GdlDockItem* get_dock_item() const;
|
||||
public:
|
||||
/**
|
||||
* Returns a pointer to the underlying GdlDockItem structure
|
||||
*/
|
||||
GdlDockItem* get_dock_item() const;
|
||||
|
||||
/**
|
||||
* Shows or hides the panel.
|
||||
* @param show A value of true will show the panel,
|
||||
* false will hide it. */
|
||||
void show(bool show = true);
|
||||
|
||||
/**
|
||||
* Returns true if the panel is currently visible.
|
||||
*/
|
||||
bool is_shown() const;
|
||||
/**
|
||||
* Shows or hides the panel.
|
||||
* @param show A value of true will show the panel,
|
||||
* false will hide it. */
|
||||
void show(bool show = true);
|
||||
|
||||
/**
|
||||
* Returns true if the panel is currently visible.
|
||||
*/
|
||||
bool is_shown() const;
|
||||
|
||||
private:
|
||||
/**
|
||||
* @internal Used by both constructors
|
||||
* The internal constructor for this class, whose purpose
|
||||
* is to set up the internal container widgets.
|
||||
*/
|
||||
void internal_setup();
|
||||
private:
|
||||
/**
|
||||
* @internal Used by both constructors
|
||||
* The internal constructor for this class, whose purpose
|
||||
* is to set up the internal container widgets.
|
||||
*/
|
||||
void internal_setup();
|
||||
|
||||
protected:
|
||||
GdlDockItem* dock_item;
|
||||
};
|
||||
protected:
|
||||
GdlDockItem* dock_item;
|
||||
};
|
||||
|
||||
} // namespace panels
|
||||
} // namespace gui
|
||||
|
|
|
|||
|
|
@ -23,8 +23,13 @@
|
|||
#include "../gtk-lumiera.hpp"
|
||||
#include "timeline-panel.hpp"
|
||||
|
||||
extern "C" {
|
||||
#include "../../lib/time.h"
|
||||
}
|
||||
|
||||
using namespace Gtk;
|
||||
using namespace sigc;
|
||||
using namespace lumiera::gui::widgets;
|
||||
|
||||
namespace lumiera {
|
||||
namespace gui {
|
||||
|
|
@ -33,27 +38,66 @@ namespace panels {
|
|||
const int TimelinePanel::ZoomToolSteps = 2; // 2 seems comfortable
|
||||
|
||||
TimelinePanel::TimelinePanel() :
|
||||
Panel("timeline", _("Timeline"), "timeline_panel"),
|
||||
Panel("timeline", _("Timeline"), "panel_timeline"),
|
||||
arrowTool(Gtk::StockID("tool_arrow")),
|
||||
iBeamTool(Gtk::StockID("tool_i_beam")),
|
||||
zoomIn(Stock::ZOOM_IN),
|
||||
zoomOut(Stock::ZOOM_OUT)
|
||||
zoomOut(Stock::ZOOM_OUT),
|
||||
timeIndicator(),
|
||||
updatingToolbar(false)
|
||||
{
|
||||
// Setup the widget
|
||||
timelineWidget.mouse_hover_signal().connect(
|
||||
mem_fun(this, &TimelinePanel::on_mouse_hover));
|
||||
|
||||
// Setup the toolbar
|
||||
timeIndicatorButton.set_label_widget(timeIndicator);
|
||||
toolbar.append(timeIndicatorButton);
|
||||
|
||||
toolbar.append(seperator1);
|
||||
|
||||
toolbar.append(arrowTool, mem_fun(this,
|
||||
&TimelinePanel::on_arrow_tool));
|
||||
toolbar.append(iBeamTool, mem_fun(this,
|
||||
&TimelinePanel::on_ibeam_tool));
|
||||
toolbar.append(seperator2);
|
||||
toolbar.append(zoomIn, mem_fun(this, &TimelinePanel::on_zoom_in));
|
||||
toolbar.append(zoomOut, mem_fun(this, &TimelinePanel::on_zoom_out));
|
||||
|
||||
toolbar.set_icon_size(IconSize(ICON_SIZE_SMALL_TOOLBAR));
|
||||
// doesn't compile on Etch
|
||||
// toolbar.set_icon_size(IconSize(ICON_SIZE_LARGE_TOOLBAR));
|
||||
toolbar.set_toolbar_style(TOOLBAR_ICONS);
|
||||
|
||||
// Add the toolbar
|
||||
pack_start(toolbar, PACK_SHRINK);
|
||||
pack_start(timelineWidget, PACK_EXPAND_WIDGET);
|
||||
|
||||
// Set the initial UI state
|
||||
update_tool_buttons();
|
||||
update_zoom_buttons();
|
||||
show_time(0);
|
||||
}
|
||||
|
||||
void
|
||||
TimelinePanel::on_arrow_tool()
|
||||
{
|
||||
if(updatingToolbar) return;
|
||||
timelineWidget.set_tool(timeline::Arrow);
|
||||
update_tool_buttons();
|
||||
}
|
||||
|
||||
void
|
||||
TimelinePanel::on_ibeam_tool()
|
||||
{
|
||||
if(updatingToolbar) return;
|
||||
timelineWidget.set_tool(timeline::IBeam);
|
||||
update_tool_buttons();
|
||||
}
|
||||
|
||||
void
|
||||
TimelinePanel::on_zoom_in()
|
||||
{
|
||||
|
||||
timelineWidget.zoom_view(ZoomToolSteps);
|
||||
update_zoom_buttons();
|
||||
}
|
||||
|
|
@ -65,6 +109,25 @@ TimelinePanel::on_zoom_out()
|
|||
update_zoom_buttons();
|
||||
}
|
||||
|
||||
void
|
||||
TimelinePanel::on_mouse_hover(gavl_time_t time)
|
||||
{
|
||||
show_time(time);
|
||||
}
|
||||
|
||||
void
|
||||
TimelinePanel::update_tool_buttons()
|
||||
{
|
||||
if(!updatingToolbar)
|
||||
{
|
||||
updatingToolbar = true;
|
||||
const timeline::ToolType tool = timelineWidget.get_tool();
|
||||
arrowTool.set_active(tool == timeline::Arrow);
|
||||
iBeamTool.set_active(tool == timeline::IBeam);
|
||||
updatingToolbar = false;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
TimelinePanel::update_zoom_buttons()
|
||||
{
|
||||
|
|
@ -73,6 +136,12 @@ TimelinePanel::update_zoom_buttons()
|
|||
TimelineWidget::MaxScale);
|
||||
}
|
||||
|
||||
void
|
||||
TimelinePanel::show_time(gavl_time_t time)
|
||||
{
|
||||
timeIndicator.set_text(lumiera_tmpbuf_print_time(time));
|
||||
}
|
||||
|
||||
} // namespace panels
|
||||
} // namespace gui
|
||||
} // namespace lumiera
|
||||
|
|
|
|||
|
|
@ -35,18 +35,35 @@ namespace lumiera {
|
|||
namespace gui {
|
||||
namespace panels {
|
||||
|
||||
/**
|
||||
* The definition of the timeline panel class, which holds timeline
|
||||
* widgets.
|
||||
*/
|
||||
class TimelinePanel : public Panel
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
TimelinePanel();
|
||||
|
||||
private:
|
||||
//----- Event Handlers -----//
|
||||
void on_arrow_tool();
|
||||
void on_ibeam_tool();
|
||||
|
||||
void on_zoom_in();
|
||||
void on_zoom_out();
|
||||
|
||||
void on_time_pressed();
|
||||
|
||||
void on_mouse_hover(gavl_time_t time);
|
||||
|
||||
private:
|
||||
void update_tool_buttons();
|
||||
void update_zoom_buttons();
|
||||
|
||||
void show_time(gavl_time_t time);
|
||||
|
||||
private:
|
||||
|
||||
|
|
@ -54,12 +71,26 @@ private:
|
|||
|
||||
// Widgets
|
||||
Gtk::Toolbar toolbar;
|
||||
Gtk::HBox toolStrip;
|
||||
TimelineWidget timelineWidget;
|
||||
|
||||
// Toolbar Widgets
|
||||
Gtk::ToggleToolButton arrowTool;
|
||||
Gtk::ToggleToolButton iBeamTool;
|
||||
|
||||
Gtk::SeparatorToolItem seperator1;
|
||||
|
||||
Gtk::ToolButton zoomIn;
|
||||
Gtk::ToolButton zoomOut;
|
||||
|
||||
Gtk::SeparatorToolItem seperator2;
|
||||
|
||||
Gtk::Label timeIndicator;
|
||||
Gtk::ToolButton timeIndicatorButton;
|
||||
|
||||
// Internals
|
||||
bool updatingToolbar;
|
||||
|
||||
//----- Constants -----//
|
||||
static const int ZoomToolSteps;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ namespace gui {
|
|||
namespace panels {
|
||||
|
||||
ViewerPanel::ViewerPanel() :
|
||||
Panel("viewer", _("Viewer"), "viewer_panel"),
|
||||
Panel("viewer", _("Viewer"), "panel_viewer"),
|
||||
previousButton(Stock::MEDIA_PREVIOUS),
|
||||
rewindButton(Stock::MEDIA_REWIND),
|
||||
playPauseButton(Stock::MEDIA_PLAY),
|
||||
|
|
|
|||
|
|
@ -44,6 +44,10 @@ TimelineWidget::TimelineWidget() :
|
|||
totalHeight(0),
|
||||
horizontalAdjustment(0, 0, 0),
|
||||
verticalAdjustment(0, 0, 0),
|
||||
selectionStart(0),
|
||||
selectionEnd(0),
|
||||
playbackPeriodStart(0),
|
||||
playbackPeriodEnd(0),
|
||||
horizontalScroll(horizontalAdjustment),
|
||||
verticalScroll(verticalAdjustment)
|
||||
{
|
||||
|
|
@ -51,6 +55,8 @@ TimelineWidget::TimelineWidget() :
|
|||
ENSURE(body != NULL);
|
||||
headerContainer = new HeaderContainer(this);
|
||||
ENSURE(headerContainer != NULL);
|
||||
ruler = new TimelineRuler(this);
|
||||
ENSURE(ruler != NULL);
|
||||
|
||||
horizontalAdjustment.signal_value_changed().connect( sigc::mem_fun(
|
||||
this, &TimelineWidget::on_scroll) );
|
||||
|
|
@ -58,11 +64,12 @@ TimelineWidget::TimelineWidget() :
|
|||
this, &TimelineWidget::on_scroll) );
|
||||
body->signal_motion_notify_event().connect( sigc::mem_fun(
|
||||
this, &TimelineWidget::on_motion_in_body_notify_event) );
|
||||
|
||||
|
||||
set_time_scale(GAVL_TIME_SCALE / 200);
|
||||
set_selection(2000000, 4000000);
|
||||
|
||||
attach(*body, 1, 2, 1, 2, FILL|EXPAND, FILL|EXPAND);
|
||||
attach(ruler, 1, 2, 0, 1, FILL|EXPAND, SHRINK);
|
||||
attach(*ruler, 1, 2, 0, 1, FILL|EXPAND, SHRINK);
|
||||
attach(*headerContainer, 0, 1, 1, 2, SHRINK, FILL|EXPAND);
|
||||
attach(horizontalScroll, 1, 2, 2, 3, FILL|EXPAND, SHRINK);
|
||||
attach(verticalScroll, 2, 3, 1, 2, SHRINK, FILL|EXPAND);
|
||||
|
|
@ -71,14 +78,23 @@ TimelineWidget::TimelineWidget() :
|
|||
tracks.push_back(&video2);
|
||||
|
||||
update_tracks();
|
||||
|
||||
set_tool(timeline::Arrow);
|
||||
}
|
||||
|
||||
TimelineWidget::~TimelineWidget()
|
||||
{
|
||||
REQUIRE(body != NULL);
|
||||
body->unreference();
|
||||
if(body != NULL)
|
||||
body->unreference();
|
||||
|
||||
REQUIRE(headerContainer != NULL);
|
||||
headerContainer->unreference();
|
||||
if(headerContainer != NULL)
|
||||
headerContainer->unreference();
|
||||
|
||||
REQUIRE(ruler != NULL);
|
||||
if(ruler != NULL)
|
||||
ruler->unreference();
|
||||
}
|
||||
|
||||
gavl_time_t
|
||||
|
|
@ -90,9 +106,12 @@ TimelineWidget::get_time_offset() const
|
|||
void
|
||||
TimelineWidget::set_time_offset(gavl_time_t time_offset)
|
||||
{
|
||||
REQUIRE(ruler != NULL);
|
||||
|
||||
timeOffset = time_offset;
|
||||
horizontalAdjustment.set_value(time_offset);
|
||||
ruler.set_time_offset(time_offset);
|
||||
|
||||
viewChangedSignal.emit();
|
||||
}
|
||||
|
||||
int64_t
|
||||
|
|
@ -104,17 +123,14 @@ TimelineWidget::get_time_scale() const
|
|||
void
|
||||
TimelineWidget::set_time_scale(int64_t time_scale)
|
||||
{
|
||||
timeScale = time_scale;
|
||||
ruler.set_time_scale(time_scale);
|
||||
}
|
||||
|
||||
void
|
||||
TimelineWidget::shift_view(int shift_size)
|
||||
{
|
||||
const int view_width = body->get_allocation().get_width();
|
||||
REQUIRE(ruler != NULL);
|
||||
|
||||
set_time_offset(get_time_offset() +
|
||||
shift_size * timeScale * view_width / 16);
|
||||
timeScale = time_scale;
|
||||
|
||||
const int view_width = body->get_allocation().get_width();
|
||||
horizontalAdjustment.set_page_size(timeScale * view_width);
|
||||
|
||||
viewChangedSignal.emit();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -148,11 +164,121 @@ TimelineWidget::zoom_view(int point, int zoom_size)
|
|||
set_time_scale(new_time_scale);
|
||||
}
|
||||
|
||||
void
|
||||
TimelineWidget::shift_view(int shift_size)
|
||||
{
|
||||
const int view_width = body->get_allocation().get_width();
|
||||
|
||||
set_time_offset(get_time_offset() +
|
||||
shift_size * timeScale * view_width / 256);
|
||||
}
|
||||
|
||||
gavl_time_t
|
||||
TimelineWidget::get_selection_start() const
|
||||
{
|
||||
return selectionStart;
|
||||
}
|
||||
|
||||
gavl_time_t
|
||||
TimelineWidget::get_selection_end() const
|
||||
{
|
||||
return selectionEnd;
|
||||
}
|
||||
|
||||
void
|
||||
TimelineWidget::set_selection(gavl_time_t start, gavl_time_t end,
|
||||
bool reset_playback_period)
|
||||
{
|
||||
REQUIRE(ruler != NULL);
|
||||
REQUIRE(body != NULL);
|
||||
|
||||
if(start < end)
|
||||
{
|
||||
selectionStart = start;
|
||||
selectionEnd = end;
|
||||
}
|
||||
else
|
||||
{
|
||||
// The selection is back-to-front, flip it round
|
||||
selectionStart = end;
|
||||
selectionEnd = start;
|
||||
}
|
||||
|
||||
if(reset_playback_period)
|
||||
{
|
||||
playbackPeriodStart = selectionStart;
|
||||
playbackPeriodEnd = selectionEnd;
|
||||
}
|
||||
|
||||
ruler->queue_draw();
|
||||
body->queue_draw();
|
||||
}
|
||||
|
||||
gavl_time_t
|
||||
TimelineWidget::get_playback_period_start() const
|
||||
{
|
||||
return playbackPeriodStart;
|
||||
}
|
||||
|
||||
gavl_time_t
|
||||
TimelineWidget::get_playback_period_end() const
|
||||
{
|
||||
return playbackPeriodEnd;
|
||||
}
|
||||
|
||||
void
|
||||
TimelineWidget::set_playback_period(gavl_time_t start, gavl_time_t end)
|
||||
{
|
||||
REQUIRE(ruler != NULL);
|
||||
REQUIRE(body != NULL);
|
||||
|
||||
if(start < end)
|
||||
{
|
||||
playbackPeriodStart = start;
|
||||
playbackPeriodEnd = end;
|
||||
}
|
||||
else
|
||||
{
|
||||
// The period is back-to-front, flip it round
|
||||
playbackPeriodStart = end;
|
||||
playbackPeriodEnd = start;
|
||||
}
|
||||
|
||||
ruler->queue_draw();
|
||||
body->queue_draw();
|
||||
}
|
||||
|
||||
ToolType
|
||||
TimelineWidget::get_tool() const
|
||||
{
|
||||
REQUIRE(body != NULL);
|
||||
return body->get_tool();
|
||||
}
|
||||
|
||||
void
|
||||
TimelineWidget::set_tool(ToolType tool_type)
|
||||
{
|
||||
REQUIRE(body != NULL);
|
||||
body->set_tool(tool_type);
|
||||
}
|
||||
|
||||
sigc::signal<void>
|
||||
TimelineWidget::view_changed_signal() const
|
||||
{
|
||||
return viewChangedSignal;
|
||||
}
|
||||
|
||||
sigc::signal<void, gavl_time_t>
|
||||
TimelineWidget::mouse_hover_signal() const
|
||||
{
|
||||
return mouseHoverSignal;
|
||||
}
|
||||
|
||||
void
|
||||
TimelineWidget::on_scroll()
|
||||
{
|
||||
timeOffset = horizontalAdjustment.get_value();
|
||||
ruler.set_time_offset(timeOffset);
|
||||
viewChangedSignal.emit();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -163,6 +289,18 @@ TimelineWidget::on_size_allocate(Allocation& allocation)
|
|||
update_scroll();
|
||||
}
|
||||
|
||||
int
|
||||
TimelineWidget::time_to_x(gavl_time_t time) const
|
||||
{
|
||||
return (int)((time - timeOffset) / timeScale);
|
||||
}
|
||||
|
||||
gavl_time_t
|
||||
TimelineWidget::x_to_time(int x) const
|
||||
{
|
||||
return (gavl_time_t)((int64_t)x * timeScale + timeOffset);
|
||||
}
|
||||
|
||||
void
|
||||
TimelineWidget::update_tracks()
|
||||
{
|
||||
|
|
@ -186,9 +324,14 @@ TimelineWidget::update_scroll()
|
|||
|
||||
//----- Horizontal Scroll ------//
|
||||
|
||||
// TEST CODE
|
||||
horizontalAdjustment.set_upper(1000 * GAVL_TIME_SCALE / 200);
|
||||
horizontalAdjustment.set_lower(-1000 * GAVL_TIME_SCALE / 200);
|
||||
|
||||
// Set the page size
|
||||
horizontalAdjustment.set_page_size(
|
||||
timeScale * body_allocation.get_width());
|
||||
|
||||
//----- Vertical Scroll -----//
|
||||
|
||||
// Calculate the vertical length that can be scrolled:
|
||||
|
|
@ -204,10 +347,14 @@ TimelineWidget::update_scroll()
|
|||
verticalAdjustment.set_upper(y_scroll_length);
|
||||
|
||||
// Hide the scrollbar if no scrolling is possible
|
||||
if(y_scroll_length == 0 && verticalScroll.is_visible())
|
||||
#if 0
|
||||
// Having this code included seems to cause a layout loop as the
|
||||
// window is shrunk
|
||||
if(y_scroll_length <= 0 && verticalScroll.is_visible())
|
||||
verticalScroll.hide();
|
||||
else if(y_scroll_length != 0 && !verticalScroll.is_visible())
|
||||
else if(y_scroll_length > 0 && !verticalScroll.is_visible())
|
||||
verticalScroll.show();
|
||||
#endif
|
||||
}
|
||||
|
||||
int
|
||||
|
|
@ -220,7 +367,8 @@ bool
|
|||
TimelineWidget::on_motion_in_body_notify_event(GdkEventMotion *event)
|
||||
{
|
||||
REQUIRE(event != NULL);
|
||||
ruler.set_mouse_chevron_offset(event->x);
|
||||
ruler->set_mouse_chevron_offset(event->x);
|
||||
mouseHoverSignal.emit(x_to_time(event->x));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,13 +30,25 @@
|
|||
#include "timeline/header-container.hpp"
|
||||
#include "timeline/timeline-body.hpp"
|
||||
#include "timeline/timeline-ruler.hpp"
|
||||
#include "timeline/timeline-tool.hpp"
|
||||
#include "timeline/timeline-arrow-tool.hpp"
|
||||
#include "timeline/timeline-ibeam-tool.hpp"
|
||||
#include "timeline/track.hpp"
|
||||
#include "timeline/video-track.hpp"
|
||||
|
||||
namespace lumiera {
|
||||
namespace gui {
|
||||
namespace widgets {
|
||||
|
||||
/**
|
||||
* The namespace of all timeline widget helper classes.
|
||||
*/
|
||||
namespace timeline {}
|
||||
|
||||
/**
|
||||
* The timeline widget class.
|
||||
* @remarks This widget is a composite of several widgets contained
|
||||
* within the timeline namespace.
|
||||
*/
|
||||
class TimelineWidget : public Gtk::Table
|
||||
{
|
||||
public:
|
||||
|
|
@ -91,19 +103,78 @@ public:
|
|||
|
||||
/**
|
||||
* Scrolls the view horizontally as a proportion of the view area.
|
||||
* @param shift_size The size of the shift in 1/16ths of the view
|
||||
* @param shift_size The size of the shift in 1/256ths of the view
|
||||
* width.
|
||||
**/
|
||||
void shift_view(int shift_size);
|
||||
|
||||
/**
|
||||
* Gets the time at which the selection begins.
|
||||
*/
|
||||
gavl_time_t get_selection_start() const;
|
||||
|
||||
/**
|
||||
* Gets the time at which the selection begins.
|
||||
*/
|
||||
gavl_time_t get_selection_end() const;
|
||||
|
||||
/**
|
||||
* Sets the period of the selection.
|
||||
* @param start The start time.
|
||||
* @param end The end time.
|
||||
* @param reset_playback_period Specifies whether to set the playback
|
||||
* period to the same as this new selection.
|
||||
*/
|
||||
void set_selection(gavl_time_t start, gavl_time_t end,
|
||||
bool reset_playback_period = true);
|
||||
|
||||
/**
|
||||
* Gets the time at which the playback period begins.
|
||||
*/
|
||||
gavl_time_t get_playback_period_start() const;
|
||||
|
||||
/**
|
||||
* Gets the time at which the playback period ends.
|
||||
*/
|
||||
gavl_time_t get_playback_period_end() const;
|
||||
|
||||
/**
|
||||
* Sets the playback period.
|
||||
* @param start The start time.
|
||||
* @param end The end time.
|
||||
*/
|
||||
void set_playback_period(gavl_time_t start, gavl_time_t end);
|
||||
|
||||
/**
|
||||
* Gets the type of the tool currently active.
|
||||
*/
|
||||
timeline::ToolType get_tool() const;
|
||||
|
||||
/**
|
||||
* Sets the type of the tool currently active.
|
||||
*/
|
||||
void set_tool(timeline::ToolType tool_type);
|
||||
|
||||
public:
|
||||
/* ===== Signals ===== */
|
||||
sigc::signal<void> view_changed_signal() const;
|
||||
|
||||
sigc::signal<void, gavl_time_t> mouse_hover_signal() const;
|
||||
|
||||
/* ===== Events ===== */
|
||||
protected:
|
||||
void on_scroll();
|
||||
|
||||
void on_size_allocate(Gtk::Allocation& allocation);
|
||||
|
||||
/* ===== Utilities ===== */
|
||||
protected:
|
||||
int time_to_x(gavl_time_t time) const;
|
||||
|
||||
gavl_time_t x_to_time(int x) const;
|
||||
|
||||
/* ===== Internals ===== */
|
||||
protected:
|
||||
private:
|
||||
|
||||
void update_tracks();
|
||||
|
||||
|
|
@ -114,25 +185,42 @@ protected:
|
|||
bool on_motion_in_body_notify_event(GdkEventMotion *event);
|
||||
|
||||
protected:
|
||||
|
||||
// View State
|
||||
gavl_time_t timeOffset;
|
||||
int64_t timeScale;
|
||||
|
||||
// Selection State
|
||||
gavl_time_t selectionStart;
|
||||
gavl_time_t selectionEnd;
|
||||
gavl_time_t playbackPeriodStart;
|
||||
gavl_time_t playbackPeriodEnd;
|
||||
|
||||
int totalHeight;
|
||||
|
||||
timeline::VideoTrack video1;
|
||||
timeline::VideoTrack video2;
|
||||
timeline::Track video1;
|
||||
timeline::Track video2;
|
||||
std::vector<timeline::Track*> tracks;
|
||||
|
||||
timeline::HeaderContainer *headerContainer;
|
||||
timeline::TimelineBody *body;
|
||||
timeline::TimelineRuler ruler;
|
||||
timeline::TimelineRuler *ruler;
|
||||
|
||||
Gtk::Adjustment horizontalAdjustment, verticalAdjustment;
|
||||
Gtk::HScrollbar horizontalScroll;
|
||||
Gtk::VScrollbar verticalScroll;
|
||||
|
||||
// Signals
|
||||
sigc::signal<void> viewChangedSignal;
|
||||
sigc::signal<void, gavl_time_t> mouseHoverSignal;
|
||||
|
||||
/* ===== Constants ===== */
|
||||
public:
|
||||
/**
|
||||
* The maximum scale for timeline display.
|
||||
* @remarks At MaxScale, every pixel on the timeline is equivalent
|
||||
* to 30000000 gavl_time_t increments.
|
||||
*/
|
||||
static const int64_t MaxScale;
|
||||
|
||||
protected:
|
||||
|
|
@ -142,6 +230,10 @@ protected:
|
|||
|
||||
friend class timeline::TimelineBody;
|
||||
friend class timeline::HeaderContainer;
|
||||
friend class timeline::TimelineRuler;
|
||||
friend class timeline::Tool;
|
||||
friend class timeline::ArrowTool;
|
||||
friend class timeline::IBeamTool;
|
||||
};
|
||||
|
||||
} // namespace widgets
|
||||
|
|
|
|||
|
|
@ -39,7 +39,9 @@ HeaderContainer::HeaderContainer(lumiera::gui::widgets::TimelineWidget *timeline
|
|||
{
|
||||
REQUIRE(timeline_widget != NULL);
|
||||
|
||||
set_flags(Gtk::NO_WINDOW); // This widget will not have a window at first
|
||||
// This widget will not have a window at first
|
||||
set_flags(Gtk::NO_WINDOW);
|
||||
|
||||
set_redraw_on_allocate(false);
|
||||
|
||||
// Connect to the timeline widget's vertical scroll event,
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
#ifndef HEADER_CONTAINER_HPP
|
||||
#define HEADER_CONTAINER_HPP
|
||||
|
||||
#include <gtkmm.h>
|
||||
#include "../../gtk-lumiera.hpp"
|
||||
#include <vector>
|
||||
|
||||
namespace lumiera {
|
||||
|
|
@ -46,80 +46,105 @@ class Track;
|
|||
* associated with timeline tracks.
|
||||
*/
|
||||
class HeaderContainer : public Gtk::Container
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param[in] timeline_widget A pointer to the owner timeline widget
|
||||
*/
|
||||
HeaderContainer(lumiera::gui::widgets::TimelineWidget*
|
||||
timeline_widget);
|
||||
|
||||
/**
|
||||
* Attaches the header all the header widgets of root
|
||||
* tracks to this control.
|
||||
*
|
||||
* @note This must be called when the track list changes
|
||||
* to synchronise the headers with the timeline body and
|
||||
* the backend.
|
||||
*/
|
||||
void update_headers();
|
||||
|
||||
/* ===== Overrides ===== */
|
||||
private:
|
||||
/**
|
||||
* And event handler for the window realized signal.
|
||||
*/
|
||||
void on_realize();
|
||||
|
||||
/**
|
||||
* And event handler for the window unrealized signal.
|
||||
*/
|
||||
void on_unrealize();
|
||||
|
||||
/**
|
||||
* An event handler that is called to notify this widget to allocate
|
||||
* a given area for itself.
|
||||
* @param allocation The area to allocate for this widget.
|
||||
*/
|
||||
void on_size_allocate (Gtk::Allocation& allocation);
|
||||
|
||||
/**
|
||||
* An event handler that is called to offer an allocation to this
|
||||
* widget.
|
||||
* @param requisition The area offered for this widget.
|
||||
*/
|
||||
void on_size_request (Gtk::Requisition* requisition);
|
||||
|
||||
/**
|
||||
* Applies a given function to all the widgets in the container.
|
||||
**/
|
||||
void forall_vfunc(gboolean include_internals, GtkCallback callback,
|
||||
gpointer callback_data);
|
||||
|
||||
/* ===== Events ===== */
|
||||
private:
|
||||
/**
|
||||
* This event is called when the scroll bar moves.
|
||||
*/
|
||||
void on_scroll();
|
||||
|
||||
/* ===== Internals ===== */
|
||||
private:
|
||||
|
||||
/**
|
||||
* Moves all the header widgets to the correct position
|
||||
* given scroll, stacking etc.
|
||||
*/
|
||||
void layout_headers();
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* The owner TimelineWidget of which this class is a helper
|
||||
*/
|
||||
lumiera::gui::widgets::TimelineWidget *timelineWidget;
|
||||
|
||||
/**
|
||||
* A structure to represent a header widget and it's
|
||||
* associated track
|
||||
*/
|
||||
struct RootHeader
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param[in] timeline_widget A pointer to the owner timeline widget
|
||||
*/
|
||||
HeaderContainer(lumiera::gui::widgets::TimelineWidget *timeline_widget);
|
||||
|
||||
/**
|
||||
* Attaches the header all the header widgets of root
|
||||
* tracks to this control.
|
||||
*
|
||||
* @note This must be called when the track list changes
|
||||
* to synchronise the headers with the timeline body and
|
||||
* the backend.
|
||||
*/
|
||||
void update_headers();
|
||||
|
||||
/* ===== Overrides ===== */
|
||||
private:
|
||||
void on_realize();
|
||||
void on_unrealize();
|
||||
|
||||
void on_size_allocate (Gtk::Allocation& allocation);
|
||||
void on_size_request (Gtk::Requisition* requisition);
|
||||
|
||||
void forall_vfunc(gboolean include_internals, GtkCallback callback,
|
||||
gpointer callback_data);
|
||||
|
||||
/* ===== Events ===== */
|
||||
private:
|
||||
void on_scroll();
|
||||
|
||||
/* ===== Internals ===== */
|
||||
private:
|
||||
|
||||
/**
|
||||
* Moves all the header widgets to the correct position
|
||||
* given scroll, stacking etc.
|
||||
*/
|
||||
void layout_headers();
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* The owner TimelineWidget of which this class is a helper
|
||||
*/
|
||||
lumiera::gui::widgets::TimelineWidget *timelineWidget;
|
||||
|
||||
/**
|
||||
* A structure to represent a header widget and it's
|
||||
* associated track
|
||||
*/
|
||||
struct RootHeader
|
||||
{
|
||||
Glib::RefPtr<Gtk::Widget> widget;
|
||||
Track *track;
|
||||
};
|
||||
|
||||
/**
|
||||
* Contains a list of the root currently present on
|
||||
* the timeline view
|
||||
*/
|
||||
std::vector< RootHeader > rootHeaders;
|
||||
|
||||
/**
|
||||
* The widget's window object.
|
||||
*
|
||||
* @note This is needed for the sake of clipping when
|
||||
* widgets are scrolled.
|
||||
*/
|
||||
Glib::RefPtr<Gdk::Window> gdkWindow;
|
||||
Glib::RefPtr<Gtk::Widget> widget;
|
||||
Track *track;
|
||||
};
|
||||
|
||||
/**
|
||||
* Contains a list of the root currently present on
|
||||
* the timeline view
|
||||
*/
|
||||
std::vector< RootHeader > rootHeaders;
|
||||
|
||||
/**
|
||||
* The widget's window object.
|
||||
*
|
||||
* @note This is needed for the sake of clipping when
|
||||
* widgets are scrolled.
|
||||
*/
|
||||
Glib::RefPtr<Gdk::Window> gdkWindow;
|
||||
};
|
||||
|
||||
} // namespace timeline
|
||||
} // namespace widgets
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
video-track.cpp - Implementation of the timeline video track object
|
||||
timeline-arrow-tool.cpp - Implementation of the ArrowTool class
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2008, Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||
|
|
@ -20,38 +20,48 @@
|
|||
|
||||
* *****************************************************/
|
||||
|
||||
#include "video-track.hpp"
|
||||
|
||||
using namespace Gtk;
|
||||
#include "timeline-arrow-tool.hpp"
|
||||
|
||||
namespace lumiera {
|
||||
namespace gui {
|
||||
namespace widgets {
|
||||
namespace timeline {
|
||||
|
||||
VideoTrack::VideoTrack() :
|
||||
headerWidget("HeaderTest")
|
||||
{
|
||||
ArrowTool::ArrowTool(TimelineBody *timeline_body) :
|
||||
Tool(timeline_body)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Gtk::Widget&
|
||||
VideoTrack::get_header_widget()
|
||||
{
|
||||
return headerWidget;
|
||||
}
|
||||
ToolType
|
||||
ArrowTool::get_type() const
|
||||
{
|
||||
return Arrow;
|
||||
}
|
||||
|
||||
int
|
||||
VideoTrack::get_height()
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
Gdk::Cursor
|
||||
ArrowTool::get_cursor() const
|
||||
{
|
||||
return Gdk::Cursor(Gdk::ARROW);
|
||||
}
|
||||
|
||||
void
|
||||
VideoTrack::draw_track(Cairo::RefPtr<Cairo::Context> cairo)
|
||||
{
|
||||
|
||||
}
|
||||
ArrowTool::on_button_press_event(GdkEventButton* event)
|
||||
{
|
||||
Tool::on_button_press_event(event);
|
||||
}
|
||||
|
||||
void
|
||||
ArrowTool::on_button_release_event(GdkEventButton* event)
|
||||
{
|
||||
Tool::on_button_release_event(event);
|
||||
}
|
||||
|
||||
void
|
||||
ArrowTool::on_motion_notify_event(GdkEventMotion *event)
|
||||
{
|
||||
Tool::on_motion_notify_event(event);
|
||||
}
|
||||
|
||||
} // namespace timeline
|
||||
} // namespace widgets
|
||||
83
src/gui/widgets/timeline/timeline-arrow-tool.hpp
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
timeline-arrow-tool.hpp - Declaration of the ArrowTool class
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2008, Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||
|
||||
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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
/** @file timeline-arrow-tool.hpp
|
||||
** This file contains the definition of the arrow tool class
|
||||
*/
|
||||
|
||||
#ifndef TIMELINE_ARROW_TOOL_HPP
|
||||
#define TIMELINE_ARROW_TOOL_HPP
|
||||
|
||||
#include <gtkmm.h>
|
||||
#include "timeline-tool.hpp"
|
||||
|
||||
namespace lumiera {
|
||||
namespace gui {
|
||||
namespace widgets {
|
||||
namespace timeline {
|
||||
|
||||
/**
|
||||
* A helper class to implement the timeline i-beam tool
|
||||
*/
|
||||
class ArrowTool : public Tool
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Constructor
|
||||
* @param timeline_body The owner timeline body object
|
||||
*/
|
||||
ArrowTool(TimelineBody *timeline_body);
|
||||
|
||||
/**
|
||||
* Gets the type of tool represented by this class
|
||||
*/
|
||||
ToolType get_type() const;
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* Gets the cursor to display for this tool at this moment.
|
||||
*/
|
||||
Gdk::Cursor get_cursor() const;
|
||||
|
||||
protected:
|
||||
/**
|
||||
* The event handler for button press events.
|
||||
*/
|
||||
void on_button_press_event(GdkEventButton* event);
|
||||
|
||||
/**
|
||||
* The event handler for button release events.
|
||||
*/
|
||||
void on_button_release_event(GdkEventButton* event);
|
||||
|
||||
/**
|
||||
* The event handler for mouse move events.
|
||||
*/
|
||||
void on_motion_notify_event(GdkEventMotion *event);
|
||||
};
|
||||
|
||||
} // namespace timeline
|
||||
} // namespace widgets
|
||||
} // namespace gui
|
||||
} // namespace lumiera
|
||||
|
||||
#endif // TIMELINE_ARROW_TOOL_HPP
|
||||