# This is the default pyFormex config file. DO NOT CHANGE IT!  -*- PYTHON -*-
# $Id: a796130 on Sun Jun 30 16:20:08 2013 +0200 by Benedict Verhegghe $
##
##  This file is part of pyFormex 0.9.1  (Tue Oct 15 21:05:25 CEST 2013)
##  pyFormex is a tool for generating, manipulating and transforming 3D
##  geometrical models by sequences of mathematical operations.
##  Home page: http://pyformex.org
##  Project page:  http://savannah.nongnu.org/projects/pyformex/
##  Copyright 2004-2013 (C) Benedict Verhegghe (benedict.verhegghe@ugent.be)
##  Distributed under the GNU General Public License version 3 or later.
##
##  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 3 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/.
##

"""pyformex.conf

This is the global configuration file for pyFormex. It should always
be present in the installation path and never be changed from the
installed defaults.

Changes should go to /etc/pyformex.conf (for site-wide changes)
or to ~/.config/pyformex/pyformex.conf (for personal settings).
If your are missing these files, you can safely copy (parts of) this file
as a start.
Many of these settings can also be changed from the pyFormex GUI, using the
Settings->Settings Dialog.

Config settings are read from the following files in order:
this file, /etc/pyformex.conf, ~/.config/pyformex/pyformex.conf.
The last settings override previous ones.

The config files are read by the :class:`config.Config`.
This means that the syntax is a subset of Python.
Two config variables are already set on entry: `pyformexdir`, `homedir`
"""

import os

# files and directories
workdir = "."
icondir = os.path.join(pyformexdir,'icons')
examplesdir = os.path.join(pyformexdir,'examples')
datadir = os.path.join(pyformexdir,'data')
bindir = os.path.join(pyformexdir,'bin')
userconfdir = os.path.join(homedir,'.config','pyformex')
siteprefs = '/etc/pyformex.conf'
localprefs = '.config/pyformex/pyformex.conf'
autorun = os.path.join(userconfdir,'startup.py')
scripttemplate = os.path.join(pyformexdir,'template.py')
curfile = ''
curproj = ''

# extra paths to append tot sys.path
syspath = []

# commands
### THESE MAY BE CHANGED BY THE INSTALLATION PROCEDURE
editor = os.environ.get('VISUAL','')
viewer = 'firefox'   # html viewer
browser = 'firefox'  # web browser
fortune = 'fortune -s' # command to generate a fortune cookie

# scriptdirs is a list of (title,dir) tuples
# for 'examples', the directory will be filled in automagically
scriptdirs = [ ('Examples','') ]
appdirs = [ ('Examples','') ]
# searchdirs are the paths outside pyformex also searched with --search option
searchdirs = [ ]

autoglobals = True
showapploaderrors = False
openlastproj = False
uselib = True
check_print = True
# use commands module for external commands (default is subprocess)
commands = False

# prefered system for creating 2d plots
plot2d = 'gnuplot'


[warnings]
nice = True    # Show nicely formatted warnings when possible
popup = True   # Show warnings in a popup window (in gui version)
deprec = True  # Show deprecations
# Warnings to be filtered out: a list of tuples (message,module,category)
# module and category have defaults
# Example: filterwarnings = [('warn_viewport_switching',)]
# This should best be left empty and only filled by the user
# Warnings from upstream packages can be filtered out here
filters = [('.*return_index.*','numpy')]

[gui]
bindings='pyqt4'
#imagesfromeps = True
fortune = False  # show a fortune cookie on startup
redirect = True
history = []
scripthistory = []
apphistory = []
history_max = 20

splash = os.path.join(icondir,'pyformex-splash.png')
plugins = ['geometry_menu']
style = "Plastique"
spacing = 2         # defines spacing between items in input dialogs
size=(800,600)
bdsize=size
pos=(0,0)
maximized = False
fullscreen = False
boxmargins = (0,0,0,0)
icontype = '.xpm'
exitconfirm = 'smart' # other options: 'never', 'always'
dooze = 0.0
rst2html = True      # rst text is converted to html for nice display

interpreter = ''     # set to 'Python' or 'IPython' to add interactive console
console = 'b'        # 'b' is board, 'c' is console, 'bc' is both

prefsmenu = True     # add settings menu menu
viewportmenu = True  # add viewport menu
cameramenu = True    # add camera menu
viewmenu = True      # add views menu
examplesmenu = True  # add examples menu
runalloption = False # add a menu option to run all scripts

camerabar = 'top'     # add camera toolbar to top toolbar space
modebar = 'top'       # add rendemode toolbar to top toolbar space
viewbar = 'left'      # add views toolbar to left toolbar space

# Default action buttons for current app
#actionbuttons = [ 'play', 'rerun', 'step', 'continue', 'stop', 'edit', 'info' ]
actionbuttons = [ 'play', 'rerun', 'continue', 'edit', 'info' ]

wirebutton = True    # add wire button to toolbar
transbutton = True   # add transparency button to toolbar
normalsbutton = True  # add normals button to toolbar
lightbutton = True    # add light button to toolbar
shrinkbutton = False  # add shrink button to toolbar
timeoutbutton = False # add timeout button to toolbar
timeoutvalue = 2      # timeout after this number of seconds
coordsbox = False     # add coords display widget to toolbar

defviews = [('front','view-xr-yu'),('back','view-xl-yu'),\
            ('right','view-zl-yu'),('left','view-zr-yu'),\
            ('top','view-xr-zd'),('bottom','view-xr-zu'),\
            ('iso','view-iso1'),\
            ]
zoomfactor = 1.15      # zooming factor for zoom buttons
rotfactor = 5.         # rotation angle for rotation buttons
panfactor = 0.05       # translation factor for pan buttons
autozoomfactor = 1.732 # enlargement factor for the autozoom (sqrt(3))
wheelzoomfactor = 0.25  # enlargement factor for the wheelzoom
dynazoom = ['area','dolly']     # preferred zoom technique ('area', 'dolly', 'lens' or 'none')
wheelzoom = 'area'    # action performed by the wheel ('area', 'dolly', 'lens')

easter_egg = ()

layout = 1
showfocus = True

wireframe_mode = 'smart'    # set to 'gl' for old behavior

##########################
# Default canvas settings
##########################
# This should only contain the keys that are also in CanvasSettings
# Other canvas related settings can be added to the [draw] section
[canvas]
bgmode = 'solid'        # one of 'solid', 'vert', 'hor', 'full'
bgcolor = 'grey90'      # background color (single color or list of 2 or 4)
bgimage = ''            # background image, filename
fgcolor = 'black'       # default drawing color
bkcolor = None          # if defined, backsides of planes have this color
slcolor = 'yellow'      # highlighting color
colormap = ['darkgrey','red','green','blue','cyan','magenta','yellow','white','black','darkred','darkgreen','darkblue','darkcyan','darkmagenta','darkyellow','lightgrey']
bkcolormap = colormap
smooth = False              # smooth shading off
fill = False                # polygon filling off
lighting = False            # default lights off
alphablend = False          # alphablend (transparency) off
culling = False             # culling off
avgnormals = False
transparency = 0.5          # default transparency value
pointsize = 4.0             # size of points
linewidth = 1.0             # width of lines
linestipple = (0,1)         # line stipple (factor,pattern)
marksize = 0.4              # size of 3D marks
marktype = 'sphere'         # type of 3D mark
wiremode = -1               # which edges to display


[draw]
rendermode = 'wireframe'    # default rendering mode
numbersontop = True
wait = 0.0  # time(sec.) to wait between draw operations
flywait = 0.3  # time(sec.) to wait between subsequent views in auto flying
localaxes = True     # by default, buttons rotate/pan in local axes
quadline = [ 'line3' ]
quadsurf = [] # [ 'quad8', 'quad9', 'hex20' ]
avgnormalsize = '_auto_'
picksize=(12,12) # size of the pick window
disable_depth_test = False

[material]
matte = dict(ambient=0.8,diffuse=0.8,specular=0.2)
default = dict(ambient=0.3,diffuse=0.3,specular=0.6)
plastic = dict(ambient=0.9,diffuse=0.9,specular=0.7)
metal = dict(ambient=0.1,diffuse=0.1,specular=0.9)

[light]
light0 = {'enabled':True,'ambient':0.4,'diffuse':1.0,'specular':0.4,'position':(1.,1.,2.,0.)}
light1 = {'enabled':True,'ambient':0.0,'diffuse':1.0,'specular':0.3,'position':(0.,1.,2.,0.)}
light2 = {'enabled':True,'ambient':0.2,'diffuse':1.0,'specular':0.4,'position':(0.,0.,1.,0.)}
#light3 = {'enabled':False,'ambient':0.6,'diffuse':0.7,'specular':0.2,'position':(1.,-1.,1.,0.)}
#light4 = {'enabled':False,'ambient':0.6,'diffuse':0.5,'specular':0.3,'position':(1.,1.,-1.,0.)}
#light5 = {'enabled':False,'ambient':0.6,'diffuse':0.5,'specular':0.3,'position':(-1.,1.,-1.,0.)}
#light6 = {'enabled':False,'ambient':0.6,'diffuse':0.5,'specular':0.3,'position':(-1.,-1.,-1.,0.)}
#light7 = {'enabled':False,'ambient':0.6,'diffuse':0.5,'specular':0.3,'position':(1.,-1.,-1.,0.)}


[render]
mode = 'wireframe'
lightmodel = 'ambient and diffuse' # currently only model supported
ambient = 0.2     # does this really do anything?
material = 'default' # the name of a material defined above
lights = ['light0','light2'] # a list of enabled lights
avgnormaltreshold = 0.5
line = '2' # '1' or '2'; if '1', quadratic lines are shown as linear
surface = '1' # '1' or '2'; if '1', quadratic surfaces are shown as linear
volume = True # if False, volumes are shown as their border surface


[help]
htmldir = os.path.join(pyformexdir,'doc','html')
localdoc = os.path.join(htmldir,"index.html")
refman = os.path.join(htmldir,"refman.html")
tutorial = os.path.join(htmldir,"tutorial.html")
index = os.path.join(htmldir,"genindex.html")
modindex = os.path.join(htmldir,"py-modindex.html")
running = os.path.join(htmldir,"running.html")
readme = os.path.join(pyformexdir,"doc","README")
notes = os.path.join(pyformexdir,"doc","ReleaseNotes")
license = os.path.join(pyformexdir,"doc","COPYING")
style = os.path.join(pyformexdir,"doc","STYLE")
website = "http://pyformex.org"
webdoc = website+"/doc"
projpage = "http://savannah.nongnu.org/projects/pyformex/"
support = "http://savannah.nongnu.org/support/?func=additem&group=pyformex"
bugs = "http://savannah.nongnu.org/bugs/?func=additem&group=pyformex"
links = [('pyFormex','pyformex.org'),('pyFormex-dev',projpage),('Python','www.python.org'),('IBiTech-bioMMeda','www.biommeda.ugent.be'),('stent-boys@bioMMeda','www.stent-ibitech.ugent.be'),('FEops','www.feops.com'),]
docs = [('&Local documentation',localdoc),('&Reference Manual',refman),('Tutorial',tutorial),('&Module Index',modindex),('&Index',index),('&Running pyFormex',running),('&Online documentation',webdoc),]
docs2 = [('&Readme',readme),('&ReleaseNotes',notes),('&License',license)]


[keys]
save = 'F2'


[surface]
stlread = '.off'


[mail]
sender = ''
server = 'localhost'

[jobs]
hosts = ['localhost']
host = 'localhost'
inputdir = '~'
outputdir = '~'
cmd_abaqus = 'abaqus job=$F cpus=$C'
cmd_calculix = 'ccx -i $F'


[prop]
matdb = os.path.join(datadir,'materials.db')
secdb = os.path.join(datadir,'sections.db')


[webgl]
script = "http://get.goXTK.com/xtk_edge.js"
guiscript = "http://get.goXTK.com/xtk_xdat.gui.js"
autogui = True
devel = False
devpath = '.'

#End
