Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/blender/CMakeLists.txt60
-rw-r--r--source/blender/avi/AVI_avi.h46
-rw-r--r--source/blender/avi/intern/avi.c6
-rw-r--r--source/blender/avi/intern/avi_intern.h2
-rw-r--r--source/blender/avi/intern/avirgb.c6
-rw-r--r--source/blender/avi/intern/avirgb.h2
-rw-r--r--source/blender/avi/intern/codecs.c6
-rw-r--r--source/blender/avi/intern/endian.c9
-rw-r--r--source/blender/avi/intern/endian.h9
-rw-r--r--source/blender/avi/intern/mjpeg.c9
-rw-r--r--source/blender/avi/intern/mjpeg.h2
-rw-r--r--source/blender/avi/intern/options.c9
-rw-r--r--source/blender/avi/intern/rgb32.c9
-rw-r--r--source/blender/avi/intern/rgb32.h2
-rw-r--r--source/blender/blenfont/BLF_api.h2
-rw-r--r--source/blender/blenfont/intern/blf.c2
-rw-r--r--source/blender/blenfont/intern/blf_dir.c2
-rw-r--r--source/blender/blenfont/intern/blf_font.c2
-rw-r--r--source/blender/blenfont/intern/blf_glyph.c2
-rw-r--r--source/blender/blenfont/intern/blf_internal.h2
-rw-r--r--source/blender/blenfont/intern/blf_internal_types.h2
-rw-r--r--source/blender/blenfont/intern/blf_lang.c42
-rw-r--r--source/blender/blenfont/intern/blf_util.c2
-rw-r--r--source/blender/blenkernel/BKE_blender.h21
-rw-r--r--source/blender/blenkernel/BKE_displist.h1
-rw-r--r--source/blender/blenkernel/BKE_node.h22
-rw-r--r--source/blender/blenkernel/depsgraph_private.h2
-rw-r--r--source/blender/blenkernel/intern/BME_Customdata.c2
-rw-r--r--source/blender/blenkernel/intern/BME_conversions.c2
-rw-r--r--source/blender/blenkernel/intern/BME_eulers.c2
-rw-r--r--source/blender/blenkernel/intern/BME_mesh.c2
-rw-r--r--source/blender/blenkernel/intern/BME_structure.c2
-rw-r--r--source/blender/blenkernel/intern/BME_tools.c2
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c2
-rw-r--r--source/blender/blenkernel/intern/action.c2
-rw-r--r--source/blender/blenkernel/intern/anim.c2
-rw-r--r--source/blender/blenkernel/intern/anim_sys.c2
-rw-r--r--source/blender/blenkernel/intern/armature.c2
-rw-r--r--source/blender/blenkernel/intern/bmesh_private.h2
-rw-r--r--source/blender/blenkernel/intern/bmfont.c2
-rw-r--r--source/blender/blenkernel/intern/brush.c2
-rw-r--r--source/blender/blenkernel/intern/bvhutils.c2
-rw-r--r--source/blender/blenkernel/intern/cloth.c52
-rw-r--r--source/blender/blenkernel/intern/collision.c56
-rw-r--r--source/blender/blenkernel/intern/constraint.c2
-rw-r--r--source/blender/blenkernel/intern/context.c2
-rw-r--r--source/blender/blenkernel/intern/depsgraph.c2
-rw-r--r--source/blender/blenkernel/intern/displist.c5
-rw-r--r--source/blender/blenkernel/intern/exotic.c8
-rw-r--r--source/blender/blenkernel/intern/fcurve.c2
-rw-r--r--source/blender/blenkernel/intern/fluidsim.c5
-rw-r--r--source/blender/blenkernel/intern/fmodifier.c2
-rw-r--r--source/blender/blenkernel/intern/gpencil.c2
-rw-r--r--source/blender/blenkernel/intern/icons.c2
-rw-r--r--source/blender/blenkernel/intern/idcode.c2
-rw-r--r--source/blender/blenkernel/intern/idprop.c2
-rw-r--r--source/blender/blenkernel/intern/implicit.c56
-rw-r--r--source/blender/blenkernel/intern/lattice.c2
-rw-r--r--source/blender/blenkernel/intern/library.c2
-rw-r--r--source/blender/blenkernel/intern/material.c2
-rw-r--r--source/blender/blenkernel/intern/mball.c2
-rw-r--r--source/blender/blenkernel/intern/mesh_validate.c2
-rw-r--r--source/blender/blenkernel/intern/modifier.c5
-rw-r--r--source/blender/blenkernel/intern/nla.c2
-rw-r--r--source/blender/blenkernel/intern/node.c1156
-rw-r--r--source/blender/blenkernel/intern/packedFile.c2
-rw-r--r--source/blender/blenkernel/intern/paint.c4
-rw-r--r--source/blender/blenkernel/intern/particle_system.c8
-rw-r--r--source/blender/blenkernel/intern/pointcache.c5
-rw-r--r--source/blender/blenkernel/intern/report.c2
-rw-r--r--source/blender/blenkernel/intern/sca.c2
-rw-r--r--source/blender/blenkernel/intern/seqcache.c2
-rw-r--r--source/blender/blenkernel/intern/seqeffects.c2
-rw-r--r--source/blender/blenkernel/intern/sequencer.c5
-rw-r--r--source/blender/blenkernel/intern/shrinkwrap.c4
-rw-r--r--source/blender/blenkernel/intern/sketch.c2
-rw-r--r--source/blender/blenkernel/intern/smoke.c2
-rw-r--r--source/blender/blenkernel/intern/subsurf_ccg.c12
-rw-r--r--source/blender/blenkernel/intern/suggestions.c2
-rw-r--r--source/blender/blenkernel/intern/unit.c3
-rw-r--r--source/blender/blenkernel/intern/writeavi.c2
-rw-r--r--source/blender/blenkernel/intern/writeffmpeg.c2
-rw-r--r--source/blender/blenkernel/nla_private.h2
-rw-r--r--source/blender/blenlib/BLI_path_util.h2
-rw-r--r--source/blender/blenlib/BLI_pbvh.h2
-rw-r--r--source/blender/blenlib/CMakeLists.txt4
-rw-r--r--source/blender/blenlib/PIL_dynlib.h2
-rw-r--r--source/blender/blenlib/PIL_time.h2
-rw-r--r--source/blender/blenlib/SConscript7
-rw-r--r--source/blender/blenlib/intern/BLI_args.c2
-rw-r--r--source/blender/blenlib/intern/BLI_callbacks.h2
-rw-r--r--source/blender/blenlib/intern/BLI_dynstr.c2
-rw-r--r--source/blender/blenlib/intern/BLI_ghash.c2
-rw-r--r--source/blender/blenlib/intern/BLI_heap.c2
-rw-r--r--source/blender/blenlib/intern/BLI_kdopbvh.c2
-rw-r--r--source/blender/blenlib/intern/BLI_kdtree.c2
-rw-r--r--source/blender/blenlib/intern/BLI_linklist.c2
-rw-r--r--source/blender/blenlib/intern/BLI_memarena.c2
-rw-r--r--source/blender/blenlib/intern/BLI_mempool.c2
-rw-r--r--source/blender/blenlib/intern/DLRB_tree.c2
-rw-r--r--source/blender/blenlib/intern/bpath.c2
-rw-r--r--source/blender/blenlib/intern/cpu.c2
-rw-r--r--source/blender/blenlib/intern/dynamiclist.h2
-rw-r--r--source/blender/blenlib/intern/dynlib.c2
-rw-r--r--source/blender/blenlib/intern/edgehash.c2
-rw-r--r--source/blender/blenlib/intern/freetypefont.c2
-rw-r--r--source/blender/blenlib/intern/graph.c2
-rw-r--r--source/blender/blenlib/intern/gsqueue.c2
-rw-r--r--source/blender/blenlib/intern/jitter.c2
-rw-r--r--source/blender/blenlib/intern/math_base.c2
-rw-r--r--source/blender/blenlib/intern/math_base_inline.c2
-rw-r--r--source/blender/blenlib/intern/math_color.c2
-rw-r--r--source/blender/blenlib/intern/math_geom.c2
-rw-r--r--source/blender/blenlib/intern/math_geom_inline.c2
-rw-r--r--source/blender/blenlib/intern/math_rotation.c2
-rw-r--r--source/blender/blenlib/intern/math_vector.c2
-rw-r--r--source/blender/blenlib/intern/math_vector_inline.c2
-rw-r--r--source/blender/blenlib/intern/path_util.c24
-rw-r--r--source/blender/blenlib/intern/pbvh.c11
-rw-r--r--source/blender/blenlib/intern/rand.c2
-rw-r--r--source/blender/blenlib/intern/scanfill.c2
-rw-r--r--source/blender/blenlib/intern/storage.c6
-rw-r--r--source/blender/blenlib/intern/threads.c2
-rw-r--r--source/blender/blenlib/intern/time.c2
-rw-r--r--source/blender/blenlib/intern/uvproject.c2
-rw-r--r--source/blender/blenlib/intern/voxel.c2
-rw-r--r--source/blender/blenlib/intern/winstuff.c2
-rw-r--r--source/blender/blenloader/BLO_soundfile.h2
-rw-r--r--source/blender/blenloader/BLO_sys_types.h2
-rw-r--r--source/blender/blenloader/intern/readblenentry.c2
-rw-r--r--source/blender/blenloader/intern/readfile.c131
-rw-r--r--source/blender/blenloader/intern/undofile.c2
-rw-r--r--source/blender/blenloader/intern/writefile.c8
-rw-r--r--source/blender/blenpluginapi/CMakeLists.txt1
-rw-r--r--source/blender/blenpluginapi/SConscript2
-rw-r--r--source/blender/blenpluginapi/documentation.h2
-rw-r--r--source/blender/blenpluginapi/intern/pluginapi.c2
-rw-r--r--source/blender/collada/AnimationImporter.cpp2
-rw-r--r--source/blender/collada/AnimationImporter.h6
-rw-r--r--source/blender/collada/ArmatureExporter.cpp2
-rw-r--r--source/blender/collada/ArmatureExporter.h6
-rw-r--r--source/blender/collada/ArmatureImporter.cpp2
-rw-r--r--source/blender/collada/ArmatureImporter.h6
-rw-r--r--source/blender/collada/CMakeLists.txt1
-rw-r--r--source/blender/collada/CameraExporter.cpp2
-rw-r--r--source/blender/collada/CameraExporter.h6
-rw-r--r--source/blender/collada/DocumentExporter.cpp2
-rw-r--r--source/blender/collada/DocumentExporter.h6
-rw-r--r--source/blender/collada/DocumentImporter.h4
-rw-r--r--source/blender/collada/EffectExporter.cpp2
-rw-r--r--source/blender/collada/EffectExporter.h6
-rw-r--r--source/blender/collada/GeometryExporter.cpp2
-rw-r--r--source/blender/collada/GeometryExporter.h6
-rw-r--r--source/blender/collada/ImageExporter.cpp2
-rw-r--r--source/blender/collada/ImageExporter.h6
-rw-r--r--source/blender/collada/InstanceWriter.cpp2
-rw-r--r--source/blender/collada/InstanceWriter.h6
-rw-r--r--source/blender/collada/LightExporter.cpp2
-rw-r--r--source/blender/collada/LightExporter.h6
-rw-r--r--source/blender/collada/MaterialExporter.cpp2
-rw-r--r--source/blender/collada/MaterialExporter.h6
-rw-r--r--source/blender/collada/MeshImporter.cpp2
-rw-r--r--source/blender/collada/MeshImporter.h6
-rw-r--r--source/blender/collada/SConscript5
-rw-r--r--source/blender/collada/SkinInfo.cpp2
-rw-r--r--source/blender/collada/SkinInfo.h6
-rw-r--r--source/blender/collada/TransformReader.cpp2
-rw-r--r--source/blender/collada/TransformReader.h6
-rw-r--r--source/blender/collada/TransformWriter.cpp2
-rw-r--r--source/blender/collada/TransformWriter.h6
-rw-r--r--source/blender/collada/collada.cpp2
-rw-r--r--source/blender/collada/collada.h7
-rw-r--r--source/blender/collada/collada_internal.cpp2
-rw-r--r--source/blender/collada/collada_internal.h7
-rw-r--r--source/blender/collada/collada_utils.cpp2
-rw-r--r--source/blender/collada/collada_utils.h6
-rw-r--r--source/blender/editors/animation/CMakeLists.txt1
-rw-r--r--source/blender/editors/animation/SConscript2
-rw-r--r--source/blender/editors/animation/anim_channels_defines.c2
-rw-r--r--source/blender/editors/animation/anim_channels_edit.c2
-rw-r--r--source/blender/editors/animation/anim_deps.c2
-rw-r--r--source/blender/editors/animation/anim_draw.c2
-rw-r--r--source/blender/editors/animation/anim_filter.c2
-rw-r--r--source/blender/editors/animation/anim_intern.h2
-rw-r--r--source/blender/editors/animation/anim_ipo_utils.c2
-rw-r--r--source/blender/editors/animation/anim_markers.c4
-rw-r--r--source/blender/editors/animation/anim_ops.c2
-rw-r--r--source/blender/editors/animation/drivers.c2
-rw-r--r--source/blender/editors/animation/fmodifier_ui.c2
-rw-r--r--source/blender/editors/animation/keyframes_draw.c2
-rw-r--r--source/blender/editors/animation/keyframes_edit.c2
-rw-r--r--source/blender/editors/animation/keyframes_general.c2
-rw-r--r--source/blender/editors/animation/keyframing.c2
-rw-r--r--source/blender/editors/animation/keyingsets.c32
-rw-r--r--source/blender/editors/armature/BIF_generate.h2
-rw-r--r--source/blender/editors/armature/BIF_retarget.h2
-rw-r--r--source/blender/editors/armature/CMakeLists.txt1
-rw-r--r--source/blender/editors/armature/SConscript2
-rw-r--r--source/blender/editors/armature/armature_intern.h3
-rw-r--r--source/blender/editors/armature/armature_ops.c36
-rw-r--r--source/blender/editors/armature/editarmature.c10
-rw-r--r--source/blender/editors/armature/editarmature_generate.c2
-rw-r--r--source/blender/editors/armature/editarmature_retarget.c2
-rw-r--r--source/blender/editors/armature/editarmature_sketch.c2
-rw-r--r--source/blender/editors/armature/meshlaplacian.c2
-rw-r--r--source/blender/editors/armature/meshlaplacian.h2
-rw-r--r--source/blender/editors/armature/poseSlide.c2
-rw-r--r--source/blender/editors/armature/poseUtils.c2
-rw-r--r--source/blender/editors/armature/poselib.c22
-rw-r--r--source/blender/editors/armature/poseobject.c100
-rw-r--r--source/blender/editors/armature/reeb.c2
-rw-r--r--source/blender/editors/armature/reeb.h2
-rw-r--r--source/blender/editors/curve/CMakeLists.txt1
-rw-r--r--source/blender/editors/curve/SConscript2
-rw-r--r--source/blender/editors/curve/curve_intern.h2
-rw-r--r--source/blender/editors/curve/curve_ops.c2
-rw-r--r--source/blender/editors/curve/editcurve.c2
-rw-r--r--source/blender/editors/curve/editfont.c2
-rw-r--r--source/blender/editors/curve/lorem.c2
-rw-r--r--source/blender/editors/gpencil/CMakeLists.txt1
-rw-r--r--source/blender/editors/gpencil/SConscript2
-rw-r--r--source/blender/editors/gpencil/drawgpencil.c2
-rw-r--r--source/blender/editors/gpencil/editaction_gpencil.c2
-rw-r--r--source/blender/editors/gpencil/gpencil_buttons.c2
-rw-r--r--source/blender/editors/gpencil/gpencil_edit.c2
-rw-r--r--source/blender/editors/gpencil/gpencil_intern.h2
-rw-r--r--source/blender/editors/gpencil/gpencil_ops.c2
-rw-r--r--source/blender/editors/gpencil/gpencil_paint.c2
-rw-r--r--source/blender/editors/include/BIF_gl.h6
-rw-r--r--source/blender/editors/include/BIF_glutil.h6
-rw-r--r--source/blender/editors/include/ED_anim_api.h6
-rw-r--r--source/blender/editors/include/ED_armature.h7
-rw-r--r--source/blender/editors/include/ED_curve.h7
-rw-r--r--source/blender/editors/include/ED_datafiles.h6
-rw-r--r--source/blender/editors/include/ED_fileselect.h7
-rw-r--r--source/blender/editors/include/ED_fluidsim.h7
-rw-r--r--source/blender/editors/include/ED_gpencil.h6
-rw-r--r--source/blender/editors/include/ED_image.h6
-rw-r--r--source/blender/editors/include/ED_info.h6
-rw-r--r--source/blender/editors/include/ED_keyframes_draw.h6
-rw-r--r--source/blender/editors/include/ED_keyframes_edit.h6
-rw-r--r--source/blender/editors/include/ED_keyframing.h6
-rw-r--r--source/blender/editors/include/ED_lattice.h6
-rw-r--r--source/blender/editors/include/ED_logic.h7
-rw-r--r--source/blender/editors/include/ED_markers.h7
-rw-r--r--source/blender/editors/include/ED_mball.h11
-rw-r--r--source/blender/editors/include/ED_mesh.h13
-rw-r--r--source/blender/editors/include/ED_node.h7
-rw-r--r--source/blender/editors/include/ED_numinput.h6
-rw-r--r--source/blender/editors/include/ED_object.h7
-rw-r--r--source/blender/editors/include/ED_particle.h4
-rw-r--r--source/blender/editors/include/ED_physics.h4
-rw-r--r--source/blender/editors/include/ED_render.h6
-rw-r--r--source/blender/editors/include/ED_screen.h7
-rw-r--r--source/blender/editors/include/ED_screen_types.h6
-rw-r--r--source/blender/editors/include/ED_sculpt.h6
-rw-r--r--source/blender/editors/include/ED_sequencer.h6
-rw-r--r--source/blender/editors/include/ED_sound.h6
-rw-r--r--source/blender/editors/include/ED_space_api.h6
-rw-r--r--source/blender/editors/include/ED_text.h6
-rw-r--r--source/blender/editors/include/ED_transform.h6
-rw-r--r--source/blender/editors/include/ED_types.h7
-rw-r--r--source/blender/editors/include/ED_util.h8
-rw-r--r--source/blender/editors/include/ED_uvedit.h6
-rw-r--r--source/blender/editors/include/ED_view3d.h7
-rw-r--r--source/blender/editors/include/UI_icons.h6
-rw-r--r--source/blender/editors/include/UI_interface.h6
-rw-r--r--source/blender/editors/include/UI_interface_icons.h6
-rw-r--r--source/blender/editors/include/UI_resources.h6
-rw-r--r--source/blender/editors/include/UI_view2d.h6
-rw-r--r--source/blender/editors/interface/CMakeLists.txt1
-rw-r--r--source/blender/editors/interface/SConscript2
-rw-r--r--source/blender/editors/interface/interface.c2
-rw-r--r--source/blender/editors/interface/interface_draw.c2
-rw-r--r--source/blender/editors/interface/interface_handlers.c3
-rw-r--r--source/blender/editors/interface/interface_icons.c2
-rw-r--r--source/blender/editors/interface/interface_intern.h2
-rw-r--r--source/blender/editors/interface/interface_layout.c2
-rw-r--r--source/blender/editors/interface/interface_ops.c2
-rw-r--r--source/blender/editors/interface/interface_panel.c2
-rw-r--r--source/blender/editors/interface/interface_regions.c2
-rw-r--r--source/blender/editors/interface/interface_style.c2
-rw-r--r--source/blender/editors/interface/interface_templates.c4
-rw-r--r--source/blender/editors/interface/interface_utils.c3
-rw-r--r--source/blender/editors/interface/interface_widgets.c2
-rw-r--r--source/blender/editors/interface/resources.c2
-rw-r--r--source/blender/editors/interface/view2d.c2
-rw-r--r--source/blender/editors/interface/view2d_ops.c2
-rw-r--r--source/blender/editors/mesh/CMakeLists.txt1
-rw-r--r--source/blender/editors/mesh/SConscript2
-rw-r--r--source/blender/editors/mesh/editface.c135
-rw-r--r--source/blender/editors/mesh/editmesh.c2
-rw-r--r--source/blender/editors/mesh/editmesh_add.c2
-rw-r--r--source/blender/editors/mesh/editmesh_lib.c2
-rw-r--r--source/blender/editors/mesh/editmesh_loop.c2
-rw-r--r--source/blender/editors/mesh/editmesh_mods.c175
-rw-r--r--source/blender/editors/mesh/editmesh_tools.c50
-rw-r--r--source/blender/editors/mesh/loopcut.c2
-rw-r--r--source/blender/editors/mesh/mesh_data.c2
-rw-r--r--source/blender/editors/mesh/mesh_intern.h4
-rw-r--r--source/blender/editors/mesh/mesh_ops.c6
-rw-r--r--source/blender/editors/mesh/meshtools.c2
-rw-r--r--source/blender/editors/metaball/CMakeLists.txt1
-rw-r--r--source/blender/editors/metaball/SConscript2
-rw-r--r--source/blender/editors/metaball/mball_edit.c22
-rw-r--r--source/blender/editors/metaball/mball_intern.h2
-rw-r--r--source/blender/editors/metaball/mball_ops.c2
-rw-r--r--source/blender/editors/object/CMakeLists.txt1
-rw-r--r--source/blender/editors/object/SConscript2
-rw-r--r--source/blender/editors/object/object_add.c2
-rw-r--r--source/blender/editors/object/object_bake.c2
-rw-r--r--source/blender/editors/object/object_constraint.c4
-rw-r--r--source/blender/editors/object/object_edit.c6
-rw-r--r--source/blender/editors/object/object_group.c2
-rw-r--r--source/blender/editors/object/object_hook.c2
-rw-r--r--source/blender/editors/object/object_intern.h2
-rw-r--r--source/blender/editors/object/object_lattice.c2
-rw-r--r--source/blender/editors/object/object_modifier.c2
-rw-r--r--source/blender/editors/object/object_ops.c2
-rw-r--r--source/blender/editors/object/object_relations.c2
-rw-r--r--source/blender/editors/object/object_select.c2
-rw-r--r--source/blender/editors/object/object_shapekey.c2
-rw-r--r--source/blender/editors/object/object_transform.c2
-rw-r--r--source/blender/editors/object/object_vgroup.c2
-rw-r--r--source/blender/editors/physics/CMakeLists.txt1
-rw-r--r--source/blender/editors/physics/SConscript2
-rw-r--r--source/blender/editors/physics/particle_boids.c2
-rw-r--r--source/blender/editors/physics/particle_object.c2
-rw-r--r--source/blender/editors/physics/physics_fluid.c18
-rw-r--r--source/blender/editors/physics/physics_ops.c2
-rw-r--r--source/blender/editors/render/render_intern.h2
-rw-r--r--source/blender/editors/render/render_internal.c38
-rw-r--r--source/blender/editors/render/render_opengl.c2
-rw-r--r--source/blender/editors/render/render_ops.c2
-rw-r--r--source/blender/editors/render/render_preview.c19
-rw-r--r--source/blender/editors/render/render_shading.c2
-rw-r--r--source/blender/editors/screen/CMakeLists.txt1
-rw-r--r--source/blender/editors/screen/area.c5
-rw-r--r--source/blender/editors/screen/glutil.c2
-rw-r--r--source/blender/editors/screen/screen_context.c2
-rw-r--r--source/blender/editors/screen/screen_edit.c2
-rw-r--r--source/blender/editors/screen/screen_intern.h2
-rw-r--r--source/blender/editors/screen/screen_ops.c3
-rw-r--r--source/blender/editors/screen/screendump.c2
-rw-r--r--source/blender/editors/sculpt_paint/CMakeLists.txt1
-rw-r--r--source/blender/editors/sculpt_paint/SConscript2
-rw-r--r--source/blender/editors/sculpt_paint/paint_image.c2
-rw-r--r--source/blender/editors/sculpt_paint/paint_intern.h5
-rw-r--r--source/blender/editors/sculpt_paint/paint_ops.c11
-rw-r--r--source/blender/editors/sculpt_paint/paint_undo.c2
-rw-r--r--source/blender/editors/sculpt_paint/paint_utils.c66
-rw-r--r--source/blender/editors/sculpt_paint/paint_vertex.c2
-rw-r--r--source/blender/editors/sculpt_paint/sculpt.c20
-rw-r--r--source/blender/editors/sound/CMakeLists.txt1
-rw-r--r--source/blender/editors/sound/SConscript2
-rw-r--r--source/blender/editors/sound/sound_intern.h2
-rw-r--r--source/blender/editors/sound/sound_ops.c2
-rw-r--r--source/blender/editors/space_action/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_action/SConscript2
-rw-r--r--source/blender/editors/space_action/action_draw.c2
-rw-r--r--source/blender/editors/space_action/action_edit.c86
-rw-r--r--source/blender/editors/space_action/action_intern.h4
-rw-r--r--source/blender/editors/space_action/action_ops.c4
-rw-r--r--source/blender/editors/space_action/action_select.c2
-rw-r--r--source/blender/editors/space_action/space_action.c4
-rw-r--r--source/blender/editors/space_api/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_api/SConscript2
-rw-r--r--source/blender/editors/space_api/space.c2
-rw-r--r--source/blender/editors/space_api/spacetypes.c2
-rw-r--r--source/blender/editors/space_buttons/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_buttons/SConscript2
-rw-r--r--source/blender/editors/space_buttons/buttons_context.c2
-rw-r--r--source/blender/editors/space_buttons/buttons_header.c2
-rw-r--r--source/blender/editors/space_buttons/buttons_intern.h2
-rw-r--r--source/blender/editors/space_buttons/buttons_ops.c2
-rw-r--r--source/blender/editors/space_buttons/space_buttons.c2
-rw-r--r--source/blender/editors/space_console/console_draw.c14
-rw-r--r--source/blender/editors/space_console/console_intern.h3
-rw-r--r--source/blender/editors/space_console/console_ops.c2
-rw-r--r--source/blender/editors/space_console/space_console.c2
-rw-r--r--source/blender/editors/space_file/file_draw.c2
-rw-r--r--source/blender/editors/space_file/file_intern.h2
-rw-r--r--source/blender/editors/space_file/file_ops.c2
-rw-r--r--source/blender/editors/space_file/file_panels.c2
-rw-r--r--source/blender/editors/space_file/filelist.c2
-rw-r--r--source/blender/editors/space_file/filelist.h2
-rw-r--r--source/blender/editors/space_file/filesel.c2
-rw-r--r--source/blender/editors/space_file/fsmenu.c6
-rw-r--r--source/blender/editors/space_file/fsmenu.h2
-rw-r--r--source/blender/editors/space_file/space_file.c2
-rw-r--r--source/blender/editors/space_graph/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_graph/SConscript2
-rw-r--r--source/blender/editors/space_graph/graph_buttons.c2
-rw-r--r--source/blender/editors/space_graph/graph_draw.c2
-rw-r--r--source/blender/editors/space_graph/graph_edit.c2
-rw-r--r--source/blender/editors/space_graph/graph_intern.h2
-rw-r--r--source/blender/editors/space_graph/graph_ops.c2
-rw-r--r--source/blender/editors/space_graph/graph_select.c2
-rw-r--r--source/blender/editors/space_graph/graph_utils.c2
-rw-r--r--source/blender/editors/space_graph/space_graph.c2
-rw-r--r--source/blender/editors/space_image/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_image/SConscript2
-rw-r--r--source/blender/editors/space_image/image_buttons.c2
-rw-r--r--source/blender/editors/space_image/image_draw.c2
-rw-r--r--source/blender/editors/space_image/image_header.c2
-rw-r--r--source/blender/editors/space_image/image_intern.h4
-rw-r--r--source/blender/editors/space_image/image_ops.c87
-rw-r--r--source/blender/editors/space_image/image_render.c2
-rw-r--r--source/blender/editors/space_image/space_image.c4
-rw-r--r--source/blender/editors/space_info/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_info/SConscript2
-rw-r--r--source/blender/editors/space_info/info_draw.c40
-rw-r--r--source/blender/editors/space_info/info_intern.h2
-rw-r--r--source/blender/editors/space_info/info_ops.c2
-rw-r--r--source/blender/editors/space_info/info_report.c2
-rw-r--r--source/blender/editors/space_info/info_stats.c2
-rw-r--r--source/blender/editors/space_info/space_info.c2
-rw-r--r--source/blender/editors/space_info/textview.c2
-rw-r--r--source/blender/editors/space_info/textview.h2
-rw-r--r--source/blender/editors/space_logic/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_logic/SConscript2
-rw-r--r--source/blender/editors/space_logic/logic_buttons.c2
-rw-r--r--source/blender/editors/space_logic/logic_intern.h2
-rw-r--r--source/blender/editors/space_logic/logic_ops.c2
-rw-r--r--source/blender/editors/space_logic/logic_window.c2
-rw-r--r--source/blender/editors/space_logic/space_logic.c2
-rw-r--r--source/blender/editors/space_nla/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_nla/SConscript2
-rw-r--r--source/blender/editors/space_nla/nla_buttons.c2
-rw-r--r--source/blender/editors/space_nla/nla_channels.c2
-rw-r--r--source/blender/editors/space_nla/nla_draw.c2
-rw-r--r--source/blender/editors/space_nla/nla_edit.c2
-rw-r--r--source/blender/editors/space_nla/nla_intern.h2
-rw-r--r--source/blender/editors/space_nla/nla_ops.c2
-rw-r--r--source/blender/editors/space_nla/nla_select.c2
-rw-r--r--source/blender/editors/space_nla/space_nla.c2
-rw-r--r--source/blender/editors/space_node/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_node/SConscript2
-rw-r--r--source/blender/editors/space_node/drawnode.c11
-rw-r--r--source/blender/editors/space_node/node_buttons.c2
-rw-r--r--source/blender/editors/space_node/node_draw.c370
-rw-r--r--source/blender/editors/space_node/node_edit.c343
-rw-r--r--source/blender/editors/space_node/node_header.c2
-rw-r--r--source/blender/editors/space_node/node_intern.h6
-rw-r--r--source/blender/editors/space_node/node_ops.c6
-rw-r--r--source/blender/editors/space_node/node_select.c6
-rw-r--r--source/blender/editors/space_node/node_state.c2
-rw-r--r--source/blender/editors/space_node/space_node.c2
-rw-r--r--source/blender/editors/space_outliner/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_outliner/SConscript2
-rw-r--r--source/blender/editors/space_outliner/outliner.c2
-rw-r--r--source/blender/editors/space_outliner/outliner_intern.h2
-rw-r--r--source/blender/editors/space_outliner/outliner_ops.c2
-rw-r--r--source/blender/editors/space_outliner/space_outliner.c2
-rw-r--r--source/blender/editors/space_script/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_script/SConscript2
-rw-r--r--source/blender/editors/space_script/script_edit.c2
-rw-r--r--source/blender/editors/space_script/script_header.c2
-rw-r--r--source/blender/editors/space_script/script_intern.h2
-rw-r--r--source/blender/editors/space_script/script_ops.c2
-rw-r--r--source/blender/editors/space_script/space_script.c2
-rw-r--r--source/blender/editors/space_sequencer/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_sequencer/SConscript2
-rw-r--r--source/blender/editors/space_sequencer/sequencer_add.c2
-rw-r--r--source/blender/editors/space_sequencer/sequencer_buttons.c2
-rw-r--r--source/blender/editors/space_sequencer/sequencer_draw.c2
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c2
-rw-r--r--source/blender/editors/space_sequencer/sequencer_intern.h2
-rw-r--r--source/blender/editors/space_sequencer/sequencer_scopes.c2
-rw-r--r--source/blender/editors/space_sequencer/sequencer_select.c2
-rw-r--r--source/blender/editors/space_sequencer/space_sequencer.c2
-rw-r--r--source/blender/editors/space_sound/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_sound/SConscript2
-rw-r--r--source/blender/editors/space_sound/sound_header.c2
-rw-r--r--source/blender/editors/space_sound/sound_intern.h2
-rw-r--r--source/blender/editors/space_sound/space_sound.c2
-rw-r--r--source/blender/editors/space_text/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_text/SConscript2
-rw-r--r--source/blender/editors/space_text/space_text.c2
-rw-r--r--source/blender/editors/space_text/text_draw.c2
-rw-r--r--source/blender/editors/space_text/text_header.c2
-rw-r--r--source/blender/editors/space_text/text_intern.h2
-rw-r--r--source/blender/editors/space_text/text_ops.c53
-rw-r--r--source/blender/editors/space_text/text_python.c2
-rw-r--r--source/blender/editors/space_time/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_time/SConscript2
-rw-r--r--source/blender/editors/space_time/space_time.c4
-rw-r--r--source/blender/editors/space_time/time_intern.h2
-rw-r--r--source/blender/editors/space_time/time_ops.c2
-rw-r--r--source/blender/editors/space_userpref/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_userpref/SConscript2
-rw-r--r--source/blender/editors/space_userpref/space_userpref.c2
-rw-r--r--source/blender/editors/space_userpref/userpref_intern.h2
-rw-r--r--source/blender/editors/space_userpref/userpref_ops.c2
-rw-r--r--source/blender/editors/space_view3d/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_view3d/SConscript2
-rw-r--r--source/blender/editors/space_view3d/drawanimviz.c2
-rw-r--r--source/blender/editors/space_view3d/drawarmature.c2
-rw-r--r--source/blender/editors/space_view3d/drawmesh.c2
-rw-r--r--source/blender/editors/space_view3d/drawobject.c2
-rw-r--r--source/blender/editors/space_view3d/drawvolume.c2
-rw-r--r--source/blender/editors/space_view3d/space_view3d.c2
-rw-r--r--source/blender/editors/space_view3d/view3d_buttons.c2
-rw-r--r--source/blender/editors/space_view3d/view3d_draw.c19
-rw-r--r--source/blender/editors/space_view3d/view3d_edit.c43
-rw-r--r--source/blender/editors/space_view3d/view3d_fly.c2
-rw-r--r--source/blender/editors/space_view3d/view3d_header.c4
-rw-r--r--source/blender/editors/space_view3d/view3d_intern.h4
-rw-r--r--source/blender/editors/space_view3d/view3d_ops.c5
-rw-r--r--source/blender/editors/space_view3d/view3d_select.c7
-rw-r--r--source/blender/editors/space_view3d/view3d_snap.c2
-rw-r--r--source/blender/editors/space_view3d/view3d_toolbar.c2
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c2
-rw-r--r--source/blender/editors/transform/CMakeLists.txt1
-rw-r--r--source/blender/editors/transform/SConscript2
-rw-r--r--source/blender/editors/transform/transform.c4
-rw-r--r--source/blender/editors/transform/transform.h2
-rw-r--r--source/blender/editors/transform/transform_constraints.c2
-rw-r--r--source/blender/editors/transform/transform_conversions.c10
-rw-r--r--source/blender/editors/transform/transform_generics.c2
-rw-r--r--source/blender/editors/transform/transform_input.c2
-rw-r--r--source/blender/editors/transform/transform_manipulator.c2
-rw-r--r--source/blender/editors/transform/transform_ndofinput.c2
-rw-r--r--source/blender/editors/transform/transform_ops.c3
-rw-r--r--source/blender/editors/transform/transform_orientations.c2
-rw-r--r--source/blender/editors/transform/transform_snap.c4
-rw-r--r--source/blender/editors/util/CMakeLists.txt1
-rw-r--r--source/blender/editors/util/SConscript1
-rw-r--r--source/blender/editors/util/crazyspace.c2
-rw-r--r--source/blender/editors/util/ed_util.c2
-rw-r--r--source/blender/editors/util/editmode_undo.c2
-rw-r--r--source/blender/editors/util/numinput.c2
-rw-r--r--source/blender/editors/util/undo.c27
-rw-r--r--source/blender/editors/util/util_intern.h2
-rw-r--r--source/blender/editors/uvedit/CMakeLists.txt1
-rw-r--r--source/blender/editors/uvedit/SConscript2
-rw-r--r--source/blender/editors/uvedit/uvedit_draw.c2
-rw-r--r--source/blender/editors/uvedit/uvedit_intern.h2
-rw-r--r--source/blender/editors/uvedit/uvedit_ops.c2
-rw-r--r--source/blender/editors/uvedit/uvedit_unwrap_ops.c2
-rwxr-xr-xsource/blender/freestyle/intern/system/PythonInterpreter.h6
-rw-r--r--source/blender/gpu/CMakeLists.txt1
-rw-r--r--source/blender/gpu/GPU_buffers.h6
-rw-r--r--source/blender/gpu/GPU_draw.h6
-rw-r--r--source/blender/gpu/GPU_extensions.h6
-rw-r--r--source/blender/gpu/GPU_material.h6
-rw-r--r--source/blender/gpu/SConscript2
-rw-r--r--source/blender/gpu/intern/gpu_buffers.c2
-rw-r--r--source/blender/gpu/intern/gpu_codegen.c2
-rw-r--r--source/blender/gpu/intern/gpu_codegen.h2
-rw-r--r--source/blender/gpu/intern/gpu_draw.c2
-rw-r--r--source/blender/gpu/intern/gpu_extensions.c2
-rw-r--r--source/blender/gpu/intern/gpu_material.c12
-rw-r--r--source/blender/gpu/intern/gpu_shader_material.glsl7
-rw-r--r--source/blender/gpu/intern/gpu_shader_material.glsl.c1424
-rw-r--r--source/blender/ikplugin/BIK_api.h2
-rw-r--r--source/blender/ikplugin/intern/ikplugin_api.c2
-rw-r--r--source/blender/ikplugin/intern/ikplugin_api.h2
-rw-r--r--source/blender/ikplugin/intern/iksolver_plugin.c2
-rw-r--r--source/blender/ikplugin/intern/iksolver_plugin.h2
-rw-r--r--source/blender/ikplugin/intern/itasc_plugin.cpp2
-rw-r--r--source/blender/ikplugin/intern/itasc_plugin.h2
-rw-r--r--source/blender/imbuf/CMakeLists.txt1
-rw-r--r--source/blender/imbuf/IMB_thumbs.h2
-rw-r--r--source/blender/imbuf/SConscript2
-rw-r--r--source/blender/imbuf/intern/IMB_anim.h2
-rw-r--r--source/blender/imbuf/intern/IMB_filetype.h3
-rw-r--r--source/blender/imbuf/intern/IMB_metadata.h2
-rw-r--r--source/blender/imbuf/intern/anim_movie.c2
-rw-r--r--source/blender/imbuf/intern/bmp.c2
-rw-r--r--source/blender/imbuf/intern/cineon/CMakeLists.txt1
-rw-r--r--source/blender/imbuf/intern/cineon/SConscript1
-rw-r--r--source/blender/imbuf/intern/cineon/cineon_dpx.c2
-rw-r--r--source/blender/imbuf/intern/dds/BlockDXT.cpp2
-rw-r--r--source/blender/imbuf/intern/dds/BlockDXT.h2
-rw-r--r--source/blender/imbuf/intern/dds/Color.h2
-rw-r--r--source/blender/imbuf/intern/dds/ColorBlock.cpp2
-rw-r--r--source/blender/imbuf/intern/dds/ColorBlock.h2
-rw-r--r--source/blender/imbuf/intern/dds/Common.h2
-rw-r--r--source/blender/imbuf/intern/dds/DirectDrawSurface.cpp2
-rw-r--r--source/blender/imbuf/intern/dds/DirectDrawSurface.h2
-rw-r--r--source/blender/imbuf/intern/dds/Image.cpp2
-rw-r--r--source/blender/imbuf/intern/dds/Image.h2
-rw-r--r--source/blender/imbuf/intern/dds/PixelFormat.h2
-rw-r--r--source/blender/imbuf/intern/dds/Stream.cpp2
-rw-r--r--source/blender/imbuf/intern/dds/Stream.h2
-rw-r--r--source/blender/imbuf/intern/dds/dds_api.cpp2
-rw-r--r--source/blender/imbuf/intern/dds/dds_api.h2
-rw-r--r--source/blender/imbuf/intern/divers.c2
-rw-r--r--source/blender/imbuf/intern/filetype.c2
-rw-r--r--source/blender/imbuf/intern/filter.c2
-rw-r--r--source/blender/imbuf/intern/imageprocess.c2
-rw-r--r--source/blender/imbuf/intern/imbuf.h2
-rw-r--r--source/blender/imbuf/intern/iris.c2
-rw-r--r--source/blender/imbuf/intern/jp2.c2
-rw-r--r--source/blender/imbuf/intern/jpeg.c33
-rw-r--r--source/blender/imbuf/intern/metadata.c2
-rw-r--r--source/blender/imbuf/intern/openexr/openexr_api.cpp2
-rw-r--r--source/blender/imbuf/intern/openexr/openexr_api.h2
-rw-r--r--source/blender/imbuf/intern/openexr/openexr_multi.h2
-rw-r--r--source/blender/imbuf/intern/png.c2
-rw-r--r--source/blender/imbuf/intern/readimage.c2
-rw-r--r--source/blender/imbuf/intern/rectop.c2
-rw-r--r--source/blender/imbuf/intern/rotate.c2
-rw-r--r--source/blender/imbuf/intern/scaling.c2
-rw-r--r--source/blender/imbuf/intern/targa.c2
-rw-r--r--source/blender/imbuf/intern/thumbs.c4
-rw-r--r--source/blender/imbuf/intern/thumbs_blend.c2
-rw-r--r--source/blender/imbuf/intern/util.c2
-rw-r--r--source/blender/imbuf/intern/writeimage.c2
-rw-r--r--source/blender/makesdna/CMakeLists.txt63
-rw-r--r--source/blender/makesdna/DNA_actuator_types.h4
-rw-r--r--source/blender/makesdna/DNA_brush_types.h3
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h3
-rw-r--r--source/blender/makesdna/DNA_node_types.h41
-rw-r--r--source/blender/makesdna/DNA_object_force.h2
-rw-r--r--source/blender/makesdna/DNA_property_types.h2
-rw-r--r--source/blender/makesdna/intern/CMakeLists.txt4
-rw-r--r--source/blender/makesdna/intern/SConscript2
-rw-r--r--source/blender/makesdna/intern/dna_genfile.c5
-rw-r--r--source/blender/makesrna/RNA_enum_types.h2
-rw-r--r--source/blender/makesrna/RNA_types.h2
-rw-r--r--source/blender/makesrna/SConscript2
-rw-r--r--source/blender/makesrna/intern/CMakeLists.txt2
-rw-r--r--source/blender/makesrna/intern/SConscript2
-rw-r--r--source/blender/makesrna/intern/rna_ID.c2
-rw-r--r--source/blender/makesrna/intern/rna_access.c2
-rw-r--r--source/blender/makesrna/intern/rna_action.c2
-rw-r--r--source/blender/makesrna/intern/rna_action_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_actuator.c2
-rw-r--r--source/blender/makesrna/intern/rna_actuator_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_animation.c2
-rw-r--r--source/blender/makesrna/intern/rna_animation_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_animviz.c2
-rw-r--r--source/blender/makesrna/intern/rna_armature.c2
-rw-r--r--source/blender/makesrna/intern/rna_armature_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_boid.c2
-rw-r--r--source/blender/makesrna/intern/rna_brush.c9
-rw-r--r--source/blender/makesrna/intern/rna_camera.c2
-rw-r--r--source/blender/makesrna/intern/rna_cloth.c2
-rw-r--r--source/blender/makesrna/intern/rna_color.c2
-rw-r--r--source/blender/makesrna/intern/rna_constraint.c2
-rw-r--r--source/blender/makesrna/intern/rna_context.c2
-rw-r--r--source/blender/makesrna/intern/rna_controller.c2
-rw-r--r--source/blender/makesrna/intern/rna_controller_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_curve.c2
-rw-r--r--source/blender/makesrna/intern/rna_define.c2
-rw-r--r--source/blender/makesrna/intern/rna_fcurve.c2
-rw-r--r--source/blender/makesrna/intern/rna_fcurve_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_fluidsim.c2
-rw-r--r--source/blender/makesrna/intern/rna_gpencil.c2
-rw-r--r--source/blender/makesrna/intern/rna_group.c2
-rw-r--r--source/blender/makesrna/intern/rna_image.c2
-rw-r--r--source/blender/makesrna/intern/rna_image_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_internal_types.h2
-rw-r--r--source/blender/makesrna/intern/rna_key.c2
-rw-r--r--source/blender/makesrna/intern/rna_lamp.c2
-rw-r--r--source/blender/makesrna/intern/rna_lattice.c2
-rw-r--r--source/blender/makesrna/intern/rna_main.c2
-rw-r--r--source/blender/makesrna/intern/rna_main_api.c10
-rw-r--r--source/blender/makesrna/intern/rna_material.c2
-rw-r--r--source/blender/makesrna/intern/rna_material_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_mesh.c2
-rw-r--r--source/blender/makesrna/intern/rna_mesh_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_meta.c2
-rw-r--r--source/blender/makesrna/intern/rna_modifier.c14
-rw-r--r--source/blender/makesrna/intern/rna_nla.c13
-rw-r--r--source/blender/makesrna/intern/rna_nodetree.c193
-rw-r--r--source/blender/makesrna/intern/rna_nodetree_types.h2
-rw-r--r--source/blender/makesrna/intern/rna_object.c2
-rw-r--r--source/blender/makesrna/intern/rna_object_api.c7
-rw-r--r--source/blender/makesrna/intern/rna_object_force.c2
-rw-r--r--source/blender/makesrna/intern/rna_packedfile.c2
-rw-r--r--source/blender/makesrna/intern/rna_particle.c2
-rw-r--r--source/blender/makesrna/intern/rna_pose.c2
-rw-r--r--source/blender/makesrna/intern/rna_pose_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_property.c2
-rw-r--r--source/blender/makesrna/intern/rna_render.c2
-rw-r--r--source/blender/makesrna/intern/rna_rna.c2
-rw-r--r--source/blender/makesrna/intern/rna_scene.c3
-rw-r--r--source/blender/makesrna/intern/rna_scene_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_screen.c2
-rw-r--r--source/blender/makesrna/intern/rna_sculpt_paint.c2
-rw-r--r--source/blender/makesrna/intern/rna_sensor.c2
-rw-r--r--source/blender/makesrna/intern/rna_sensor_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_sequencer.c2
-rw-r--r--source/blender/makesrna/intern/rna_sequencer_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_smoke.c2
-rw-r--r--source/blender/makesrna/intern/rna_sound.c2
-rw-r--r--source/blender/makesrna/intern/rna_space.c4
-rw-r--r--source/blender/makesrna/intern/rna_test.c2
-rw-r--r--source/blender/makesrna/intern/rna_text.c2
-rw-r--r--source/blender/makesrna/intern/rna_text_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_texture.c2
-rw-r--r--source/blender/makesrna/intern/rna_timeline.c2
-rw-r--r--source/blender/makesrna/intern/rna_ui.c2
-rw-r--r--source/blender/makesrna/intern/rna_ui_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_userdef.c2
-rw-r--r--source/blender/makesrna/intern/rna_vfont.c2
-rw-r--r--source/blender/makesrna/intern/rna_wm.c2
-rw-r--r--source/blender/makesrna/intern/rna_wm_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_world.c2
-rw-r--r--source/blender/modifiers/CMakeLists.txt1
-rw-r--r--source/blender/modifiers/MOD_modifiertypes.h6
-rw-r--r--source/blender/modifiers/SConscript2
-rw-r--r--source/blender/modifiers/intern/MOD_armature.c5
-rw-r--r--source/blender/modifiers/intern/MOD_array.c5
-rw-r--r--source/blender/modifiers/intern/MOD_bevel.c5
-rw-r--r--source/blender/modifiers/intern/MOD_boolean.c5
-rw-r--r--source/blender/modifiers/intern/MOD_boolean_util.c7
-rw-r--r--source/blender/modifiers/intern/MOD_boolean_util.h7
-rw-r--r--source/blender/modifiers/intern/MOD_build.c178
-rw-r--r--source/blender/modifiers/intern/MOD_cast.c5
-rw-r--r--source/blender/modifiers/intern/MOD_cloth.c5
-rw-r--r--source/blender/modifiers/intern/MOD_collision.c5
-rw-r--r--source/blender/modifiers/intern/MOD_curve.c5
-rw-r--r--source/blender/modifiers/intern/MOD_decimate.c5
-rw-r--r--source/blender/modifiers/intern/MOD_displace.c5
-rw-r--r--source/blender/modifiers/intern/MOD_edgesplit.c5
-rw-r--r--source/blender/modifiers/intern/MOD_explode.c889
-rw-r--r--source/blender/modifiers/intern/MOD_fluidsim.c5
-rw-r--r--source/blender/modifiers/intern/MOD_fluidsim_util.c5
-rw-r--r--source/blender/modifiers/intern/MOD_fluidsim_util.h7
-rw-r--r--source/blender/modifiers/intern/MOD_hook.c6
-rw-r--r--source/blender/modifiers/intern/MOD_lattice.c5
-rw-r--r--source/blender/modifiers/intern/MOD_mask.c5
-rw-r--r--source/blender/modifiers/intern/MOD_meshdeform.c5
-rw-r--r--source/blender/modifiers/intern/MOD_mirror.c5
-rw-r--r--source/blender/modifiers/intern/MOD_multires.c5
-rw-r--r--source/blender/modifiers/intern/MOD_none.c7
-rw-r--r--source/blender/modifiers/intern/MOD_particleinstance.c5
-rw-r--r--source/blender/modifiers/intern/MOD_particlesystem.c5
-rw-r--r--source/blender/modifiers/intern/MOD_screw.c5
-rw-r--r--source/blender/modifiers/intern/MOD_shapekey.c5
-rw-r--r--source/blender/modifiers/intern/MOD_shrinkwrap.c5
-rw-r--r--source/blender/modifiers/intern/MOD_simpledeform.c5
-rw-r--r--source/blender/modifiers/intern/MOD_smoke.c5
-rw-r--r--source/blender/modifiers/intern/MOD_smooth.c5
-rw-r--r--source/blender/modifiers/intern/MOD_softbody.c5
-rw-r--r--source/blender/modifiers/intern/MOD_solidify.c31
-rw-r--r--source/blender/modifiers/intern/MOD_subsurf.c5
-rw-r--r--source/blender/modifiers/intern/MOD_surface.c5
-rw-r--r--source/blender/modifiers/intern/MOD_util.c7
-rw-r--r--source/blender/modifiers/intern/MOD_util.h7
-rw-r--r--source/blender/modifiers/intern/MOD_uvproject.c5
-rw-r--r--source/blender/modifiers/intern/MOD_wave.c5
-rw-r--r--source/blender/nodes/CMP_node.h6
-rw-r--r--source/blender/nodes/SHD_node.h6
-rw-r--r--source/blender/nodes/TEX_node.h6
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_blur.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_brightness.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_colorMatte.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_composite.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_crop.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_curves.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_defocus.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_dilate.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_directionalblur.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_displace.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_distanceMatte.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_filter.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_flip.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_gamma.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_glare.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_huecorrect.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_idMask.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_image.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_invert.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_lensdist.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_levels.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_math.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_normal.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_normalize.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_premulkey.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_rgb.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_rotate.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_scale.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_texture.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_translate.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_value.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_viewer.c2
-rw-r--r--source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c2
-rw-r--r--source/blender/nodes/intern/CMP_util.c2
-rw-r--r--source/blender/nodes/intern/CMP_util.h2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_camera.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_curves.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c6
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_geom.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_invert.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_mapping.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_material.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_math.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_normal.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_output.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_rgb.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_sepcombRGB.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_texture.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_value.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c2
-rw-r--r--source/blender/nodes/intern/SHD_util.c2
-rw-r--r--source/blender/nodes/intern/SHD_util.h2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_at.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_bricks.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_checker.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_compose.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_coord.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_curves.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_decompose.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_distance.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_image.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_invert.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_math.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_mixRgb.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_output.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_proc.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_rotate.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_scale.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_texture.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_translate.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c2
-rw-r--r--source/blender/nodes/intern/TEX_nodes/TEX_viewer.c2
-rw-r--r--source/blender/nodes/intern/TEX_util.c2
-rw-r--r--source/blender/nodes/intern/TEX_util.h2
-rw-r--r--source/blender/nodes/intern/node_util.c2
-rw-r--r--source/blender/nodes/intern/node_util.h2
-rw-r--r--source/blender/python/BPY_extern.h8
-rw-r--r--source/blender/python/generic/CMakeLists.txt1
-rw-r--r--source/blender/python/generic/IDProp.c4
-rw-r--r--source/blender/python/generic/IDProp.h2
-rw-r--r--source/blender/python/generic/blf_py_api.c2
-rw-r--r--source/blender/python/generic/blf_py_api.h2
-rw-r--r--source/blender/python/generic/mathutils.c20
-rw-r--r--source/blender/python/generic/mathutils.h3
-rw-r--r--source/blender/python/generic/mathutils_Color.c49
-rw-r--r--source/blender/python/generic/mathutils_Euler.c54
-rw-r--r--source/blender/python/generic/mathutils_Matrix.c86
-rw-r--r--source/blender/python/generic/mathutils_Quaternion.c49
-rw-r--r--source/blender/python/generic/mathutils_Vector.c60
-rw-r--r--source/blender/python/generic/noise_py_api.c2
-rw-r--r--source/blender/python/generic/noise_py_api.h2
-rw-r--r--source/blender/python/generic/py_capi_utils.c59
-rw-r--r--source/blender/python/generic/py_capi_utils.h2
-rw-r--r--source/blender/python/intern/CMakeLists.txt7
-rw-r--r--source/blender/python/intern/bpy.c10
-rw-r--r--source/blender/python/intern/bpy.h4
-rw-r--r--source/blender/python/intern/bpy_app.c2
-rw-r--r--source/blender/python/intern/bpy_app.h2
-rw-r--r--source/blender/python/intern/bpy_driver.c2
-rw-r--r--source/blender/python/intern/bpy_driver.h2
-rw-r--r--source/blender/python/intern/bpy_interface.c146
-rw-r--r--source/blender/python/intern/bpy_operator.h3
-rw-r--r--source/blender/python/intern/bpy_operator_wrap.h3
-rw-r--r--source/blender/python/intern/bpy_props.c2
-rw-r--r--source/blender/python/intern/bpy_props.h2
-rw-r--r--source/blender/python/intern/bpy_rna.c184
-rw-r--r--source/blender/python/intern/bpy_rna.h19
-rw-r--r--source/blender/python/intern/bpy_rna_array.c21
-rw-r--r--source/blender/python/intern/bpy_rna_callback.c2
-rw-r--r--source/blender/python/intern/bpy_rna_callback.h2
-rw-r--r--source/blender/python/intern/bpy_traceback.c151
-rw-r--r--source/blender/python/intern/bpy_traceback.h28
-rw-r--r--source/blender/python/intern/bpy_util.c90
-rw-r--r--source/blender/python/intern/bpy_util.h18
-rw-r--r--source/blender/python/intern/stubs.c2
-rw-r--r--source/blender/quicktime/apple/quicktime_export.c2
-rw-r--r--source/blender/quicktime/apple/quicktime_import.c2
-rw-r--r--source/blender/quicktime/quicktime_import.h2
-rw-r--r--source/blender/readblenfile/stub/BLO_readblenfileSTUB.c2
-rw-r--r--source/blender/readblenfile/test/test.c2
-rw-r--r--source/blender/render/extern/include/RE_pipeline.h6
-rw-r--r--source/blender/render/extern/include/RE_render_ext.h6
-rw-r--r--source/blender/render/extern/include/RE_shader_ext.h6
-rw-r--r--source/blender/render/intern/include/raycounter.h2
-rw-r--r--source/blender/render/intern/include/rayintersection.h2
-rw-r--r--source/blender/render/intern/include/rayobject.h2
-rw-r--r--source/blender/render/intern/include/render_types.h2
-rw-r--r--source/blender/render/intern/include/renderdatabase.h2
-rw-r--r--source/blender/render/intern/include/renderpipeline.h2
-rw-r--r--source/blender/render/intern/include/shading.h3
-rw-r--r--source/blender/render/intern/include/sss.h2
-rw-r--r--source/blender/render/intern/include/sunsky.h2
-rw-r--r--source/blender/render/intern/include/volume_precache.h2
-rw-r--r--source/blender/render/intern/include/volumetric.h2
-rw-r--r--source/blender/render/intern/include/voxeldata.h2
-rw-r--r--source/blender/render/intern/raytrace/bvh.h2
-rw-r--r--source/blender/render/intern/raytrace/rayobject.cpp2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_blibvh.cpp2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_empty.cpp2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_hint.h2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_instance.cpp2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_octree.cpp2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_qbvh.cpp2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_raycounter.cpp2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_rtbuild.cpp2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_rtbuild.h2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_svbvh.cpp2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_vbvh.cpp2
-rw-r--r--source/blender/render/intern/raytrace/reorganize.h2
-rw-r--r--source/blender/render/intern/raytrace/svbvh.h2
-rw-r--r--source/blender/render/intern/raytrace/vbvh.h2
-rw-r--r--source/blender/render/intern/source/convertblender.c4
-rw-r--r--source/blender/render/intern/source/gammaCorrectionTables.c2
-rw-r--r--source/blender/render/intern/source/imagetexture.c32
-rw-r--r--source/blender/render/intern/source/initrender.c2
-rw-r--r--source/blender/render/intern/source/pipeline.c2
-rw-r--r--source/blender/render/intern/source/pixelshading.c2
-rw-r--r--source/blender/render/intern/source/rayshade.c4
-rw-r--r--source/blender/render/intern/source/rendercore.c12
-rw-r--r--source/blender/render/intern/source/renderdatabase.c2
-rw-r--r--source/blender/render/intern/source/shadeinput.c8
-rw-r--r--source/blender/render/intern/source/shadeoutput.c2
-rw-r--r--source/blender/render/intern/source/strand.c2
-rw-r--r--source/blender/render/intern/source/volume_precache.c2
-rw-r--r--source/blender/render/intern/source/volumetric.c2
-rw-r--r--source/blender/render/intern/source/voxeldata.c2
-rw-r--r--source/blender/render/intern/source/zbuf.c7
-rw-r--r--source/blender/windowmanager/WM_types.h7
-rw-r--r--source/blender/windowmanager/intern/wm.c7
-rw-r--r--source/blender/windowmanager/intern/wm_apple.c7
-rw-r--r--source/blender/windowmanager/intern/wm_cursors.c7
-rw-r--r--source/blender/windowmanager/intern/wm_dragdrop.c7
-rw-r--r--source/blender/windowmanager/intern/wm_draw.c7
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c7
-rw-r--r--source/blender/windowmanager/intern/wm_files.c13
-rw-r--r--source/blender/windowmanager/intern/wm_gesture.c7
-rw-r--r--source/blender/windowmanager/intern/wm_init_exit.c7
-rw-r--r--source/blender/windowmanager/intern/wm_jobs.c7
-rw-r--r--source/blender/windowmanager/intern/wm_keymap.c23
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c20
-rw-r--r--source/blender/windowmanager/intern/wm_subwindow.c7
-rw-r--r--source/blender/windowmanager/intern/wm_window.c7
-rw-r--r--source/blender/windowmanager/wm.h7
-rw-r--r--source/blender/windowmanager/wm_cursors.h7
-rw-r--r--source/blender/windowmanager/wm_draw.h7
-rw-r--r--source/blender/windowmanager/wm_event_system.h7
-rw-r--r--source/blender/windowmanager/wm_event_types.h5
-rw-r--r--source/blender/windowmanager/wm_files.h7
-rw-r--r--source/blender/windowmanager/wm_subwindow.h7
-rw-r--r--source/blender/windowmanager/wm_window.h7
-rw-r--r--source/blenderplayer/CMakeLists.txt5
-rw-r--r--source/blenderplayer/bad_level_call_stubs/CMakeLists.txt1
-rw-r--r--source/blenderplayer/bad_level_call_stubs/SConscript1
-rw-r--r--source/blenderplayer/bad_level_call_stubs/stubs.c71
-rw-r--r--source/creator/CMakeLists.txt67
-rw-r--r--source/creator/buildinfo.c11
-rw-r--r--source/creator/creator.c46
-rw-r--r--source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderCanvas.h7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderGL.cpp7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderGL.h7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderInputDevice.cpp7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.cpp7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.h7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h6
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderSystem.cpp7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderSystem.h13
-rw-r--r--source/gameengine/Converter/BL_ActionActuator.cpp7
-rw-r--r--source/gameengine/Converter/BL_ActionActuator.h6
-rw-r--r--source/gameengine/Converter/BL_ArmatureActuator.cpp7
-rw-r--r--source/gameengine/Converter/BL_ArmatureActuator.h7
-rw-r--r--source/gameengine/Converter/BL_ArmatureChannel.cpp7
-rw-r--r--source/gameengine/Converter/BL_ArmatureChannel.h7
-rw-r--r--source/gameengine/Converter/BL_ArmatureConstraint.cpp7
-rw-r--r--source/gameengine/Converter/BL_ArmatureConstraint.h7
-rw-r--r--source/gameengine/Converter/BL_ArmatureObject.cpp7
-rw-r--r--source/gameengine/Converter/BL_ArmatureObject.h6
-rw-r--r--source/gameengine/Converter/BL_BlenderDataConversion.cpp7
-rw-r--r--source/gameengine/Converter/BL_BlenderDataConversion.h7
-rw-r--r--source/gameengine/Converter/BL_DeformableGameObject.cpp7
-rw-r--r--source/gameengine/Converter/BL_DeformableGameObject.h6
-rw-r--r--source/gameengine/Converter/BL_MeshDeformer.cpp7
-rw-r--r--source/gameengine/Converter/BL_MeshDeformer.h6
-rw-r--r--source/gameengine/Converter/BL_ModifierDeformer.cpp7
-rw-r--r--source/gameengine/Converter/BL_ModifierDeformer.h6
-rw-r--r--source/gameengine/Converter/BL_ShapeActionActuator.cpp7
-rw-r--r--source/gameengine/Converter/BL_ShapeActionActuator.h6
-rw-r--r--source/gameengine/Converter/BL_ShapeDeformer.cpp7
-rw-r--r--source/gameengine/Converter/BL_ShapeDeformer.h6
-rw-r--r--source/gameengine/Converter/BL_SkinDeformer.cpp7
-rw-r--r--source/gameengine/Converter/BL_SkinDeformer.h6
-rw-r--r--source/gameengine/Converter/BlenderWorldInfo.cpp7
-rw-r--r--source/gameengine/Converter/BlenderWorldInfo.h7
-rw-r--r--source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp7
-rw-r--r--source/gameengine/Converter/KX_BlenderScalarInterpolator.h7
-rw-r--r--source/gameengine/Converter/KX_BlenderSceneConverter.cpp7
-rw-r--r--source/gameengine/Converter/KX_BlenderSceneConverter.h7
-rw-r--r--source/gameengine/Converter/KX_ConvertActuators.cpp7
-rw-r--r--source/gameengine/Converter/KX_ConvertActuators.h7
-rw-r--r--source/gameengine/Converter/KX_ConvertControllers.cpp7
-rw-r--r--source/gameengine/Converter/KX_ConvertControllers.h7
-rw-r--r--source/gameengine/Converter/KX_ConvertProperties.cpp7
-rw-r--r--source/gameengine/Converter/KX_ConvertProperties.h7
-rw-r--r--source/gameengine/Converter/KX_ConvertSensors.cpp7
-rw-r--r--source/gameengine/Converter/KX_ConvertSensors.h7
-rw-r--r--source/gameengine/Converter/KX_IpoConvert.cpp7
-rw-r--r--source/gameengine/Converter/KX_IpoConvert.h7
-rw-r--r--source/gameengine/Converter/KX_SoftBodyDeformer.cpp7
-rw-r--r--source/gameengine/Converter/KX_SoftBodyDeformer.h6
-rw-r--r--source/gameengine/Expressions/BoolValue.cpp3
-rw-r--r--source/gameengine/Expressions/BoolValue.h5
-rw-r--r--source/gameengine/Expressions/ConstExpr.cpp3
-rw-r--r--source/gameengine/Expressions/ConstExpr.h4
-rw-r--r--source/gameengine/Expressions/EXP_C-Api.cpp7
-rw-r--r--source/gameengine/Expressions/EXP_C-Api.h7
-rw-r--r--source/gameengine/Expressions/EmptyValue.cpp3
-rw-r--r--source/gameengine/Expressions/EmptyValue.h5
-rw-r--r--source/gameengine/Expressions/ErrorValue.cpp3
-rw-r--r--source/gameengine/Expressions/ErrorValue.h4
-rw-r--r--source/gameengine/Expressions/Expression.cpp3
-rw-r--r--source/gameengine/Expressions/Expression.h4
-rw-r--r--source/gameengine/Expressions/FloatValue.cpp3
-rw-r--r--source/gameengine/Expressions/FloatValue.h5
-rw-r--r--source/gameengine/Expressions/IdentifierExpr.cpp7
-rw-r--r--source/gameengine/Expressions/IdentifierExpr.h7
-rw-r--r--source/gameengine/Expressions/IfExpr.cpp3
-rw-r--r--source/gameengine/Expressions/IfExpr.h5
-rw-r--r--source/gameengine/Expressions/InputParser.cpp3
-rw-r--r--source/gameengine/Expressions/InputParser.h5
-rw-r--r--source/gameengine/Expressions/IntValue.cpp3
-rw-r--r--source/gameengine/Expressions/IntValue.h5
-rw-r--r--source/gameengine/Expressions/KX_HashedPtr.cpp7
-rw-r--r--source/gameengine/Expressions/KX_HashedPtr.h7
-rw-r--r--source/gameengine/Expressions/KX_Python.h7
-rw-r--r--source/gameengine/Expressions/ListValue.cpp3
-rw-r--r--source/gameengine/Expressions/ListValue.h4
-rw-r--r--source/gameengine/Expressions/Operator1Expr.cpp3
-rw-r--r--source/gameengine/Expressions/Operator1Expr.h4
-rw-r--r--source/gameengine/Expressions/Operator2Expr.cpp3
-rw-r--r--source/gameengine/Expressions/Operator2Expr.h4
-rw-r--r--source/gameengine/Expressions/PyObjectPlus.cpp48
-rw-r--r--source/gameengine/Expressions/PyObjectPlus.h15
-rw-r--r--source/gameengine/Expressions/StringValue.cpp3
-rw-r--r--source/gameengine/Expressions/StringValue.h4
-rw-r--r--source/gameengine/Expressions/Value.cpp3
-rw-r--r--source/gameengine/Expressions/Value.h57
-rw-r--r--source/gameengine/Expressions/VectorValue.cpp3
-rw-r--r--source/gameengine/Expressions/VectorValue.h5
-rw-r--r--source/gameengine/Expressions/VoidValue.h7
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp7
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_Joystick.h38
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h7
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp7
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h6
-rw-r--r--source/gameengine/GameLogic/SCA_2DFilterActuator.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_2DFilterActuator.h6
-rw-r--r--source/gameengine/GameLogic/SCA_ANDController.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_ANDController.h6
-rw-r--r--source/gameengine/GameLogic/SCA_ActuatorEventManager.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_ActuatorEventManager.h7
-rw-r--r--source/gameengine/GameLogic/SCA_ActuatorSensor.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_ActuatorSensor.h6
-rw-r--r--source/gameengine/GameLogic/SCA_AlwaysEventManager.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_AlwaysEventManager.h7
-rw-r--r--source/gameengine/GameLogic/SCA_AlwaysSensor.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_AlwaysSensor.h6
-rw-r--r--source/gameengine/GameLogic/SCA_BasicEventManager.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_BasicEventManager.h6
-rw-r--r--source/gameengine/GameLogic/SCA_DelaySensor.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_DelaySensor.h6
-rw-r--r--source/gameengine/GameLogic/SCA_EventManager.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_EventManager.h7
-rw-r--r--source/gameengine/GameLogic/SCA_ExpressionController.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_ExpressionController.h6
-rw-r--r--source/gameengine/GameLogic/SCA_IActuator.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_IActuator.h9
-rw-r--r--source/gameengine/GameLogic/SCA_IController.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_IController.h9
-rw-r--r--source/gameengine/GameLogic/SCA_IInputDevice.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_IInputDevice.h12
-rw-r--r--source/gameengine/GameLogic/SCA_ILogicBrick.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_ILogicBrick.h7
-rw-r--r--source/gameengine/GameLogic/SCA_IObject.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_IObject.h11
-rw-r--r--source/gameengine/GameLogic/SCA_IScene.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_IScene.h7
-rw-r--r--source/gameengine/GameLogic/SCA_ISensor.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_ISensor.h10
-rw-r--r--source/gameengine/GameLogic/SCA_JoystickManager.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_JoystickManager.h6
-rw-r--r--source/gameengine/GameLogic/SCA_JoystickSensor.cpp5
-rw-r--r--source/gameengine/GameLogic/SCA_JoystickSensor.h6
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardManager.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardManager.h10
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardSensor.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardSensor.h8
-rw-r--r--source/gameengine/GameLogic/SCA_LogicManager.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_LogicManager.h7
-rw-r--r--source/gameengine/GameLogic/SCA_MouseManager.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_MouseManager.h10
-rw-r--r--source/gameengine/GameLogic/SCA_MouseSensor.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_MouseSensor.h9
-rw-r--r--source/gameengine/GameLogic/SCA_NANDController.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_NANDController.h8
-rw-r--r--source/gameengine/GameLogic/SCA_NORController.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_NORController.h8
-rw-r--r--source/gameengine/GameLogic/SCA_ORController.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_ORController.h8
-rw-r--r--source/gameengine/GameLogic/SCA_PropertyActuator.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_PropertyActuator.h8
-rw-r--r--source/gameengine/GameLogic/SCA_PropertyEventManager.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_PropertyEventManager.h7
-rw-r--r--source/gameengine/GameLogic/SCA_PropertySensor.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_PropertySensor.h9
-rw-r--r--source/gameengine/GameLogic/SCA_PythonController.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_PythonController.h9
-rw-r--r--source/gameengine/GameLogic/SCA_PythonKeyboard.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_PythonKeyboard.h6
-rw-r--r--source/gameengine/GameLogic/SCA_PythonMouse.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_PythonMouse.h6
-rw-r--r--source/gameengine/GameLogic/SCA_RandomActuator.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_RandomActuator.h10
-rw-r--r--source/gameengine/GameLogic/SCA_RandomEventManager.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_RandomEventManager.h9
-rw-r--r--source/gameengine/GameLogic/SCA_RandomNumberGenerator.cpp3
-rw-r--r--source/gameengine/GameLogic/SCA_RandomNumberGenerator.h13
-rw-r--r--source/gameengine/GameLogic/SCA_RandomSensor.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_RandomSensor.h9
-rw-r--r--source/gameengine/GameLogic/SCA_TimeEventManager.cpp13
-rw-r--r--source/gameengine/GameLogic/SCA_TimeEventManager.h8
-rw-r--r--source/gameengine/GameLogic/SCA_XNORController.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_XNORController.h8
-rw-r--r--source/gameengine/GameLogic/SCA_XORController.cpp7
-rw-r--r--source/gameengine/GameLogic/SCA_XORController.h8
-rw-r--r--source/gameengine/GamePlayer/common/GPC_Canvas.cpp7
-rw-r--r--source/gameengine/GamePlayer/common/GPC_Canvas.h6
-rw-r--r--source/gameengine/GamePlayer/common/GPC_Engine.cpp7
-rw-r--r--source/gameengine/GamePlayer/common/GPC_Engine.h6
-rw-r--r--source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp7
-rw-r--r--source/gameengine/GamePlayer/common/GPC_KeyboardDevice.h6
-rw-r--r--source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp7
-rw-r--r--source/gameengine/GamePlayer/common/GPC_MouseDevice.h6
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawImage.cpp7
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawImage.h6
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.cpp7
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.h6
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawLogoArrays.cpp7
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawLogoArrays.h6
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RenderTools.cpp7
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RenderTools.h6
-rw-r--r--source/gameengine/GamePlayer/common/GPC_System.cpp7
-rw-r--r--source/gameengine/GamePlayer/common/GPC_System.h6
-rw-r--r--source/gameengine/GamePlayer/common/bmfont.cpp7
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_Application.cpp7
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_Application.h8
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp7
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_Canvas.h6
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.cpp7
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.h8
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_System.cpp7
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_System.h8
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_ghost.cpp7
-rw-r--r--source/gameengine/Ketsji/BL_BlenderShader.cpp3
-rw-r--r--source/gameengine/Ketsji/BL_BlenderShader.h32
-rw-r--r--source/gameengine/Ketsji/BL_Material.cpp3
-rw-r--r--source/gameengine/Ketsji/BL_Material.h5
-rw-r--r--source/gameengine/Ketsji/BL_Shader.cpp3
-rw-r--r--source/gameengine/Ketsji/BL_Shader.h5
-rw-r--r--source/gameengine/Ketsji/BL_Texture.cpp3
-rw-r--r--source/gameengine/Ketsji/BL_Texture.h5
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.cpp7
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.h9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp7
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h9
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp7
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h8
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.cpp7
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.h7
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.cpp7
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.h7
-rw-r--r--source/gameengine/Ketsji/KX_ArmatureSensor.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_ArmatureSensor.h9
-rw-r--r--source/gameengine/Ketsji/KX_BlenderMaterial.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_BlenderMaterial.h7
-rw-r--r--source/gameengine/Ketsji/KX_BulletPhysicsController.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_BulletPhysicsController.h5
-rw-r--r--source/gameengine/Ketsji/KX_Camera.cpp5
-rw-r--r--source/gameengine/Ketsji/KX_Camera.h6
-rw-r--r--source/gameengine/Ketsji/KX_CameraActuator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_CameraActuator.h6
-rw-r--r--source/gameengine/Ketsji/KX_CameraIpoSGController.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_CameraIpoSGController.h7
-rw-r--r--source/gameengine/Ketsji/KX_ClientObjectInfo.h7
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintActuator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintActuator.h8
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintWrapper.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintWrapper.h7
-rw-r--r--source/gameengine/Ketsji/KX_ConvertPhysicsObject.h7
-rw-r--r--source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_Dome.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_Dome.h4
-rw-r--r--source/gameengine/Ketsji/KX_EmptyObject.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_EmptyObject.h7
-rw-r--r--source/gameengine/Ketsji/KX_FontObject.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_FontObject.h7
-rw-r--r--source/gameengine/Ketsji/KX_GameActuator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_GameActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_GameObject.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_GameObject.h6
-rw-r--r--source/gameengine/Ketsji/KX_IInterpolator.h7
-rw-r--r--source/gameengine/Ketsji/KX_IPOTransform.h9
-rw-r--r--source/gameengine/Ketsji/KX_IPO_SGController.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_IPO_SGController.h7
-rw-r--r--source/gameengine/Ketsji/KX_IPhysicsController.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_IPhysicsController.h7
-rw-r--r--source/gameengine/Ketsji/KX_IScalarInterpolator.h7
-rw-r--r--source/gameengine/Ketsji/KX_ISceneConverter.h7
-rw-r--r--source/gameengine/Ketsji/KX_ISystem.h9
-rw-r--r--source/gameengine/Ketsji/KX_IpoActuator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_IpoActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_KetsjiEngine.cpp5
-rw-r--r--source/gameengine/Ketsji/KX_KetsjiEngine.h5
-rw-r--r--source/gameengine/Ketsji/KX_Light.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_Light.h7
-rw-r--r--source/gameengine/Ketsji/KX_LightIpoSGController.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_LightIpoSGController.h7
-rw-r--r--source/gameengine/Ketsji/KX_MaterialIpoController.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_MaterialIpoController.h5
-rw-r--r--source/gameengine/Ketsji/KX_MeshProxy.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_MeshProxy.h7
-rw-r--r--source/gameengine/Ketsji/KX_MotionState.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_MotionState.h7
-rw-r--r--source/gameengine/Ketsji/KX_MouseFocusSensor.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_MouseFocusSensor.h8
-rw-r--r--source/gameengine/Ketsji/KX_NearSensor.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_NearSensor.h9
-rw-r--r--source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_ObColorIpoSGController.h7
-rw-r--r--source/gameengine/Ketsji/KX_ObjectActuator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_ObjectActuator.h9
-rw-r--r--source/gameengine/Ketsji/KX_OrientationInterpolator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_OrientationInterpolator.h7
-rw-r--r--source/gameengine/Ketsji/KX_ParentActuator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_ParentActuator.h10
-rw-r--r--source/gameengine/Ketsji/KX_PhysicsEngineEnums.h7
-rw-r--r--source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h7
-rw-r--r--source/gameengine/Ketsji/KX_PhysicsPropertiesobsolete.h8
-rw-r--r--source/gameengine/Ketsji/KX_PolyProxy.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_PolyProxy.h7
-rw-r--r--source/gameengine/Ketsji/KX_PolygonMaterial.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_PolygonMaterial.h7
-rw-r--r--source/gameengine/Ketsji/KX_PositionInterpolator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_PositionInterpolator.h7
-rw-r--r--source/gameengine/Ketsji/KX_PyConstraintBinding.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_PyConstraintBinding.h7
-rw-r--r--source/gameengine/Ketsji/KX_PyMath.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_PyMath.h8
-rw-r--r--source/gameengine/Ketsji/KX_PythonInit.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_PythonInit.h7
-rw-r--r--source/gameengine/Ketsji/KX_PythonInitTypes.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_PythonInitTypes.h6
-rw-r--r--source/gameengine/Ketsji/KX_PythonSeq.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_PythonSeq.h8
-rw-r--r--source/gameengine/Ketsji/KX_RadarSensor.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_RadarSensor.h7
-rw-r--r--source/gameengine/Ketsji/KX_RayCast.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_RayCast.h6
-rw-r--r--source/gameengine/Ketsji/KX_RayEventManager.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_RayEventManager.h9
-rw-r--r--source/gameengine/Ketsji/KX_RaySensor.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_RaySensor.h9
-rw-r--r--source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h15
-rw-r--r--source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_SCA_DynamicActuator.h8
-rw-r--r--source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h13
-rw-r--r--source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h14
-rw-r--r--source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h21
-rw-r--r--source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_SG_NodeRelationships.h30
-rw-r--r--source/gameengine/Ketsji/KX_ScalarInterpolator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_ScalarInterpolator.h7
-rw-r--r--source/gameengine/Ketsji/KX_ScalingInterpolator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_ScalingInterpolator.h7
-rw-r--r--source/gameengine/Ketsji/KX_Scene.cpp15
-rw-r--r--source/gameengine/Ketsji/KX_Scene.h7
-rw-r--r--source/gameengine/Ketsji/KX_SceneActuator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_SceneActuator.h8
-rw-r--r--source/gameengine/Ketsji/KX_SoundActuator.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_SoundActuator.h8
-rw-r--r--source/gameengine/Ketsji/KX_StateActuator.cpp5
-rw-r--r--source/gameengine/Ketsji/KX_StateActuator.h6
-rw-r--r--source/gameengine/Ketsji/KX_TimeCategoryLogger.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_TimeCategoryLogger.h6
-rw-r--r--source/gameengine/Ketsji/KX_TimeLogger.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_TimeLogger.h6
-rw-r--r--source/gameengine/Ketsji/KX_TouchEventManager.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_TouchEventManager.h7
-rw-r--r--source/gameengine/Ketsji/KX_TouchSensor.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_TouchSensor.h9
-rw-r--r--source/gameengine/Ketsji/KX_TrackToActuator.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_TrackToActuator.h7
-rw-r--r--source/gameengine/Ketsji/KX_VehicleWrapper.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_VehicleWrapper.h5
-rw-r--r--source/gameengine/Ketsji/KX_VertexProxy.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_VertexProxy.h7
-rw-r--r--source/gameengine/Ketsji/KX_VisibilityActuator.cpp5
-rw-r--r--source/gameengine/Ketsji/KX_VisibilityActuator.h6
-rw-r--r--source/gameengine/Ketsji/KX_WorldInfo.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_WorldInfo.h7
-rw-r--r--source/gameengine/Ketsji/KX_WorldIpoController.cpp7
-rw-r--r--source/gameengine/Ketsji/KX_WorldIpoController.h9
-rw-r--r--source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.cpp5
-rw-r--r--source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h6
-rw-r--r--source/gameengine/Network/NG_NetworkDeviceInterface.h8
-rw-r--r--source/gameengine/Network/NG_NetworkMessage.cpp5
-rw-r--r--source/gameengine/Network/NG_NetworkMessage.h6
-rw-r--r--source/gameengine/Network/NG_NetworkObject.cpp5
-rw-r--r--source/gameengine/Network/NG_NetworkObject.h6
-rw-r--r--source/gameengine/Network/NG_NetworkScene.cpp7
-rw-r--r--source/gameengine/Network/NG_NetworkScene.h6
-rw-r--r--source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.cpp189
-rw-r--r--source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.h64
-rw-r--r--source/gameengine/Physics/Bullet/CcdGraphicController.cpp3
-rw-r--r--source/gameengine/Physics/Bullet/CcdGraphicController.h4
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsController.cpp3
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsController.h4
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp3
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h14
-rw-r--r--source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp7
-rw-r--r--source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h7
-rw-r--r--source/gameengine/Physics/common/PHY_DynamicTypes.h3
-rw-r--r--source/gameengine/Physics/common/PHY_IController.cpp7
-rw-r--r--source/gameengine/Physics/common/PHY_IController.h7
-rw-r--r--source/gameengine/Physics/common/PHY_IGraphicController.cpp7
-rw-r--r--source/gameengine/Physics/common/PHY_IGraphicController.h7
-rw-r--r--source/gameengine/Physics/common/PHY_IMotionState.cpp7
-rw-r--r--source/gameengine/Physics/common/PHY_IMotionState.h7
-rw-r--r--source/gameengine/Physics/common/PHY_IPhysicsController.cpp7
-rw-r--r--source/gameengine/Physics/common/PHY_IPhysicsController.h7
-rw-r--r--source/gameengine/Physics/common/PHY_IPhysicsEnvironment.cpp7
-rw-r--r--source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h6
-rw-r--r--source/gameengine/Physics/common/PHY_IVehicle.cpp3
-rw-r--r--source/gameengine/Physics/common/PHY_IVehicle.h5
-rw-r--r--source/gameengine/Physics/common/PHY_Pro.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_2DFilterManager.cpp7
-rw-r--r--source/gameengine/Rasterizer/RAS_2DFilterManager.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_BucketManager.cpp7
-rw-r--r--source/gameengine/Rasterizer/RAS_BucketManager.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_CameraData.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_Deformer.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_FramingManager.cpp7
-rw-r--r--source/gameengine/Rasterizer/RAS_FramingManager.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_ICanvas.h15
-rw-r--r--source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp7
-rw-r--r--source/gameengine/Rasterizer/RAS_IPolygonMaterial.h14
-rw-r--r--source/gameengine/Rasterizer/RAS_IRasterizer.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_IRenderTools.cpp7
-rw-r--r--source/gameengine/Rasterizer/RAS_IRenderTools.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_LightObject.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_MaterialBucket.cpp7
-rw-r--r--source/gameengine/Rasterizer/RAS_MaterialBucket.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_MeshObject.cpp7
-rw-r--r--source/gameengine/Rasterizer/RAS_MeshObject.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_ObjectColor.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Blur2DFilter.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Dilation2DFilter.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Erosion2DFilter.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_GrayScale2DFilter.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Invert2DFilter.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Laplacian2DFilter.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Prewitt2DFilter.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sepia2DFilter.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sharpen2DFilter.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sobel2DFilter.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp7
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h8
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp3
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h5
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp7
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp7
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_Polygon.cpp7
-rw-r--r--source/gameengine/Rasterizer/RAS_Polygon.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_Rect.h11
-rw-r--r--source/gameengine/Rasterizer/RAS_TexMatrix.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_TexVert.cpp7
-rw-r--r--source/gameengine/Rasterizer/RAS_TexVert.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_texmatrix.cpp7
-rw-r--r--source/gameengine/SceneGraph/SG_BBox.cpp7
-rw-r--r--source/gameengine/SceneGraph/SG_BBox.h8
-rw-r--r--source/gameengine/SceneGraph/SG_Controller.cpp7
-rw-r--r--source/gameengine/SceneGraph/SG_Controller.h6
-rw-r--r--source/gameengine/SceneGraph/SG_DList.h7
-rw-r--r--source/gameengine/SceneGraph/SG_IObject.cpp7
-rw-r--r--source/gameengine/SceneGraph/SG_IObject.h7
-rw-r--r--source/gameengine/SceneGraph/SG_Node.cpp7
-rw-r--r--source/gameengine/SceneGraph/SG_Node.h7
-rw-r--r--source/gameengine/SceneGraph/SG_ParentRelation.h44
-rw-r--r--source/gameengine/SceneGraph/SG_QList.h7
-rw-r--r--source/gameengine/SceneGraph/SG_Spatial.cpp7
-rw-r--r--source/gameengine/SceneGraph/SG_Spatial.h6
-rw-r--r--source/gameengine/SceneGraph/SG_Tree.cpp7
-rw-r--r--source/gameengine/SceneGraph/SG_Tree.h7
-rw-r--r--source/gameengine/VideoTexture/BlendType.h4
-rw-r--r--source/gameengine/VideoTexture/Common.h4
-rw-r--r--source/gameengine/VideoTexture/Exception.cpp3
-rw-r--r--source/gameengine/VideoTexture/Exception.h4
-rw-r--r--source/gameengine/VideoTexture/FilterBase.cpp3
-rw-r--r--source/gameengine/VideoTexture/FilterBase.h4
-rw-r--r--source/gameengine/VideoTexture/FilterBlueScreen.cpp3
-rw-r--r--source/gameengine/VideoTexture/FilterBlueScreen.h4
-rw-r--r--source/gameengine/VideoTexture/FilterColor.cpp3
-rw-r--r--source/gameengine/VideoTexture/FilterColor.h4
-rw-r--r--source/gameengine/VideoTexture/FilterNormal.cpp3
-rw-r--r--source/gameengine/VideoTexture/FilterNormal.h4
-rw-r--r--source/gameengine/VideoTexture/FilterSource.cpp3
-rw-r--r--source/gameengine/VideoTexture/FilterSource.h4
-rw-r--r--source/gameengine/VideoTexture/ImageBase.cpp3
-rw-r--r--source/gameengine/VideoTexture/ImageBase.h4
-rw-r--r--source/gameengine/VideoTexture/ImageBuff.cpp3
-rw-r--r--source/gameengine/VideoTexture/ImageBuff.h4
-rw-r--r--source/gameengine/VideoTexture/ImageMix.cpp3
-rw-r--r--source/gameengine/VideoTexture/ImageMix.h4
-rw-r--r--source/gameengine/VideoTexture/ImageRender.cpp3
-rw-r--r--source/gameengine/VideoTexture/ImageRender.h4
-rw-r--r--source/gameengine/VideoTexture/ImageViewport.cpp3
-rw-r--r--source/gameengine/VideoTexture/ImageViewport.h4
-rw-r--r--source/gameengine/VideoTexture/PyTypeList.cpp3
-rw-r--r--source/gameengine/VideoTexture/PyTypeList.h4
-rw-r--r--source/gameengine/VideoTexture/Texture.cpp3
-rw-r--r--source/gameengine/VideoTexture/Texture.h4
-rw-r--r--source/gameengine/VideoTexture/VideoBase.cpp3
-rw-r--r--source/gameengine/VideoTexture/VideoBase.h4
-rw-r--r--source/gameengine/VideoTexture/VideoFFmpeg.cpp3
-rw-r--r--source/gameengine/VideoTexture/VideoFFmpeg.h5
-rw-r--r--source/gameengine/VideoTexture/blendVideoTex.cpp3
-rw-r--r--source/kernel/gen_messaging/GEN_messaging.h7
-rw-r--r--source/kernel/gen_messaging/intern/messaging.c7
-rw-r--r--source/kernel/gen_system/GEN_HashedPtr.cpp5
-rw-r--r--source/kernel/gen_system/GEN_HashedPtr.h5
-rw-r--r--source/kernel/gen_system/GEN_Map.h7
-rw-r--r--source/kernel/gen_system/SYS_SingletonSystem.cpp5
-rw-r--r--source/kernel/gen_system/SYS_SingletonSystem.h5
-rw-r--r--source/kernel/gen_system/SYS_System.cpp5
-rw-r--r--source/kernel/gen_system/SYS_System.h5
1473 files changed, 9120 insertions, 4915 deletions
diff --git a/source/blender/CMakeLists.txt b/source/blender/CMakeLists.txt
index 176a74a0e02..d4d572aca8e 100644
--- a/source/blender/CMakeLists.txt
+++ b/source/blender/CMakeLists.txt
@@ -24,6 +24,66 @@
#
# ***** END GPL LICENSE BLOCK *****
+set(SRC_DNA_INC
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_ID.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_action_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_actuator_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_anim_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_armature_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_boid_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_brush_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_camera_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_cloth_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_color_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_constraint_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_controller_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_curve_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_customdata_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_documentation.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_effect_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_fileglobal_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_genfile.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_gpencil_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_group_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_image_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_ipo_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_key_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_lamp_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_lattice_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_listBase.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_material_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_mesh_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_meshdata_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_meta_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_modifier_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_nla_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_node_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_object_fluidsim.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_object_force.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_object_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_outliner_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_packedFile_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_particle_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_property_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_scene_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_screen_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_sdna_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_sensor_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_sequence_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_smoke_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_sound_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_space_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_text_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_texture_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_userdef_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_vec_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_vfont_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_view2d_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_view3d_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_windowmanager_types.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_world_types.h
+)
+
add_subdirectory(editors)
add_subdirectory(windowmanager)
add_subdirectory(blenkernel)
diff --git a/source/blender/avi/AVI_avi.h b/source/blender/avi/AVI_avi.h
index 90fa7705598..85685e2bd4c 100644
--- a/source/blender/avi/AVI_avi.h
+++ b/source/blender/avi/AVI_avi.h
@@ -1,24 +1,4 @@
-/**
- * @mainpage AVI - AVI module external interface
- *
- * @section about About the AVI module
- *
- * This is external code. It provides avi file import/export and
- * conversions. It has been adapted to make use of Blender memory
- * management functions, and because of this it needs module
- * blenlib. You need to provide this lib when linking with libavi.a .
- *
- * @section issues Known issues with AVI
- *
- * - avi uses mallocN, freeN from blenlib.
- * - Not all functions that are used externally are properly
- * prototyped.
- *
- * This header has not been split, since it interleaves type defines
- * and functions. You would need the types to be able to include the
- * function headers anyway. And, after all, it is someone else's
- * code. So we keep it like this.
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -48,6 +28,30 @@
*
*/
+/** \file AVI_avi.h
+ * \ingroup avi
+ * \section aviabout AVI module external interface
+ *
+ * \subsection about About the AVI module
+ *
+ * This is external code. It provides avi file import/export and
+ * conversions. It has been adapted to make use of Blender memory
+ * management functions, and because of this it needs module
+ * blenlib. You need to provide this lib when linking with libavi.a .
+ *
+ * \subsection issues Known issues with AVI
+ *
+ * - avi uses mallocN, freeN from blenlib.
+ * - Not all functions that are used externally are properly
+ * prototyped.
+ *
+ * This header has not been split, since it interleaves type defines
+ * and functions. You would need the types to be able to include the
+ * function headers anyway. And, after all, it is someone else's
+ * code. So we keep it like this.
+ *
+ */
+
#ifndef __AVI_H__
#define __AVI_H__
diff --git a/source/blender/avi/intern/avi.c b/source/blender/avi/intern/avi.c
index a30f51da499..b23c1f83714 100644
--- a/source/blender/avi/intern/avi.c
+++ b/source/blender/avi/intern/avi.c
@@ -1,10 +1,8 @@
-/**
- * avi.c
+/*
+ * $Id$
*
* This is external code.
*
- * $Id$
- *
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
diff --git a/source/blender/avi/intern/avi_intern.h b/source/blender/avi/intern/avi_intern.h
index 20de67530fd..d8595005b46 100644
--- a/source/blender/avi/intern/avi_intern.h
+++ b/source/blender/avi/intern/avi_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/avi/intern/avirgb.c b/source/blender/avi/intern/avirgb.c
index c7d411b2fc6..c081960481f 100644
--- a/source/blender/avi/intern/avirgb.c
+++ b/source/blender/avi/intern/avirgb.c
@@ -1,10 +1,8 @@
-/**
- * avirgb.c
+/*
+ * $Id$
*
* This is external code. Converts rgb-type avi-s.
*
- * $Id$
- *
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
diff --git a/source/blender/avi/intern/avirgb.h b/source/blender/avi/intern/avirgb.h
index 2c5581387df..87998c42690 100644
--- a/source/blender/avi/intern/avirgb.h
+++ b/source/blender/avi/intern/avirgb.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/avi/intern/codecs.c b/source/blender/avi/intern/codecs.c
index c66de231b3f..3652c7294b5 100644
--- a/source/blender/avi/intern/codecs.c
+++ b/source/blender/avi/intern/codecs.c
@@ -1,10 +1,8 @@
-/**
- * codecs.c
+/*
+ * $Id$
*
* This is external code. Identify and convert different avi-files.
*
- * $Id$
- *
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
diff --git a/source/blender/avi/intern/endian.c b/source/blender/avi/intern/endian.c
index 137c664568c..2312aec2686 100644
--- a/source/blender/avi/intern/endian.c
+++ b/source/blender/avi/intern/endian.c
@@ -1,11 +1,9 @@
-/**
- * endian.h
+/*
+ * $Id$
*
* This is external code. Streams bytes to output depending on the
* endianness of the system.
*
- * $Id$
- *
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -30,7 +28,8 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * */
+ *
+ */
#include <stdlib.h>
#include <string.h>
diff --git a/source/blender/avi/intern/endian.h b/source/blender/avi/intern/endian.h
index 1c90007c049..6f81463b6da 100644
--- a/source/blender/avi/intern/endian.h
+++ b/source/blender/avi/intern/endian.h
@@ -1,10 +1,8 @@
-/**
- * endian.h
+/*
+ * $Id$
*
* This is external code.
*
- * $Id$
- *
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -29,7 +27,8 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * */
+ *
+ */
#ifndef AVI_ENDIAN_H
#define AVI_ENDIAN_H
diff --git a/source/blender/avi/intern/mjpeg.c b/source/blender/avi/intern/mjpeg.c
index e8c96476fd1..c6295e2e49e 100644
--- a/source/blender/avi/intern/mjpeg.c
+++ b/source/blender/avi/intern/mjpeg.c
@@ -1,10 +1,8 @@
-/**
- * mjpeg.c
+/*
+ * $Id$
*
* This is external code. Converts between avi and mpeg/jpeg.
*
- * $Id$
- *
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -29,7 +27,8 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * */
+ *
+ */
#include "AVI_avi.h"
#include <stdlib.h>
diff --git a/source/blender/avi/intern/mjpeg.h b/source/blender/avi/intern/mjpeg.h
index 4609e5eaa1b..fa3b4dc8d0c 100644
--- a/source/blender/avi/intern/mjpeg.h
+++ b/source/blender/avi/intern/mjpeg.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/avi/intern/options.c b/source/blender/avi/intern/options.c
index bec7060e118..fdfdfab9722 100644
--- a/source/blender/avi/intern/options.c
+++ b/source/blender/avi/intern/options.c
@@ -1,11 +1,9 @@
-/**
- * options.h
+/*
+ * $Id$
*
* This is external code. Sets some compression related options
* (width, height quality, framerate).
*
- * $Id$
- *
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -30,7 +28,8 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * */
+ *
+ */
#include "AVI_avi.h"
#include "avi_intern.h"
diff --git a/source/blender/avi/intern/rgb32.c b/source/blender/avi/intern/rgb32.c
index f66f57924df..1b1703a3cec 100644
--- a/source/blender/avi/intern/rgb32.c
+++ b/source/blender/avi/intern/rgb32.c
@@ -1,10 +1,8 @@
-/**
- * rgb32.c
+/*
+ * $Id$
*
* This is external code. Converts between rgb32 and avi.
*
- * $Id$
- *
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -29,7 +27,8 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * */
+ *
+ */
#include "AVI_avi.h"
#include <stdlib.h>
diff --git a/source/blender/avi/intern/rgb32.h b/source/blender/avi/intern/rgb32.h
index e2f02f0978e..460080eaa99 100644
--- a/source/blender/avi/intern/rgb32.h
+++ b/source/blender/avi/intern/rgb32.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenfont/BLF_api.h b/source/blender/blenfont/BLF_api.h
index d26c5166ddc..e2245a9f049 100644
--- a/source/blender/blenfont/BLF_api.h
+++ b/source/blender/blenfont/BLF_api.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenfont/intern/blf.c b/source/blender/blenfont/intern/blf.c
index a989b1a1e9a..2a135b1fb84 100644
--- a/source/blender/blenfont/intern/blf.c
+++ b/source/blender/blenfont/intern/blf.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenfont/intern/blf_dir.c b/source/blender/blenfont/intern/blf_dir.c
index d3b662bdb65..8f816fac3ee 100644
--- a/source/blender/blenfont/intern/blf_dir.c
+++ b/source/blender/blenfont/intern/blf_dir.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenfont/intern/blf_font.c b/source/blender/blenfont/intern/blf_font.c
index 1b739c31f08..733352286b9 100644
--- a/source/blender/blenfont/intern/blf_font.c
+++ b/source/blender/blenfont/intern/blf_font.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenfont/intern/blf_glyph.c b/source/blender/blenfont/intern/blf_glyph.c
index c29017c35f3..b1cc4ba3084 100644
--- a/source/blender/blenfont/intern/blf_glyph.c
+++ b/source/blender/blenfont/intern/blf_glyph.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenfont/intern/blf_internal.h b/source/blender/blenfont/intern/blf_internal.h
index 72d4fc4d54a..d07b2605575 100644
--- a/source/blender/blenfont/intern/blf_internal.h
+++ b/source/blender/blenfont/intern/blf_internal.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenfont/intern/blf_internal_types.h b/source/blender/blenfont/intern/blf_internal_types.h
index dd6bf3cfa7c..d12487b5c8b 100644
--- a/source/blender/blenfont/intern/blf_internal_types.h
+++ b/source/blender/blenfont/intern/blf_internal_types.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenfont/intern/blf_lang.c b/source/blender/blenfont/intern/blf_lang.c
index a9322944ce5..da0b767f64d 100644
--- a/source/blender/blenfont/intern/blf_lang.c
+++ b/source/blender/blenfont/intern/blf_lang.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -71,32 +71,40 @@ void BLF_lang_init(void)
BLI_strncpy(global_messagepath, messagepath, sizeof(global_messagepath));
else
global_messagepath[0]= '\0';
+
}
-
+/* XXX WARNING!!! IN osx somehow the previous function call jumps in this one??? (ton, ppc) */
void BLF_lang_set(const char *str)
{
+ if(str==NULL) {
+ return;
+ }
+ else {
+
#if defined (_WIN32) || defined(__APPLE__)
- BLI_setenv("LANG", str);
+ BLI_setenv("LANG", str);
#else
- char *locreturn= setlocale(LC_ALL, str);
- if (locreturn == NULL) {
- char *lang= BLI_sprintfN("%s.UTF-8", str);
-
- locreturn= setlocale(LC_ALL, lang);
+ char *locreturn= setlocale(LC_ALL, str);
if (locreturn == NULL) {
- printf("could not change language to %s nor %s\n", str, lang);
- }
+ char *lang= BLI_sprintfN("%s.UTF-8", str);
- MEM_freeN(lang);
- }
+ locreturn= setlocale(LC_ALL, lang);
+ if (locreturn == NULL) {
+ printf("could not change language to %s nor %s\n", str, lang);
+ }
- setlocale(LC_NUMERIC, "C");
+ MEM_freeN(lang);
+ }
+
+ setlocale(LC_NUMERIC, "C");
#endif
- textdomain(DOMAIN_NAME);
- bindtextdomain(DOMAIN_NAME, global_messagepath);
- /* bind_textdomain_codeset(DOMAIN_NAME, global_encoding_name); */
- BLI_strncpy(global_language, str, sizeof(global_language));
+ textdomain(DOMAIN_NAME);
+ bindtextdomain(DOMAIN_NAME, global_messagepath);
+ /* bind_textdomain_codeset(DOMAIN_NAME, global_encoding_name); */
+ BLI_strncpy(global_language, str, sizeof(global_language));
+
+ }
}
void BLF_lang_encoding(const char *str)
diff --git a/source/blender/blenfont/intern/blf_util.c b/source/blender/blenfont/intern/blf_util.c
index 9316d47cabe..640876954ab 100644
--- a/source/blender/blenfont/intern/blf_util.c
+++ b/source/blender/blenfont/intern/blf_util.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h
index aa04e20beb6..f6bb4fbb635 100644
--- a/source/blender/blenkernel/BKE_blender.h
+++ b/source/blender/blenkernel/BKE_blender.h
@@ -40,6 +40,21 @@
extern "C" {
#endif
+/* these lines are grep'd, watch out for our not-so-awesome regex
+ * and keep comment above the defines.
+ * Use STRINGIFY() rather then defining with quotes */
+#define BLENDER_VERSION 256
+#define BLENDER_SUBVERSION 2
+
+#define BLENDER_MINVERSION 250
+#define BLENDER_MINSUBVERSION 0
+
+/* used by packaging tools */
+ /* can be left blank, otherwise a,b,c... etc with no quotes */
+#define BLENDER_VERSION_CHAR a
+ /* alpha/beta/rc/releases */
+#define BLENDER_VERSION_CYCLE beta
+
struct ListBase;
struct MemFile;
struct bContext;
@@ -47,12 +62,6 @@ struct ReportList;
struct Scene;
struct Main;
-#define BLENDER_VERSION 256
-#define BLENDER_SUBVERSION 1
-
-#define BLENDER_MINVERSION 250
-#define BLENDER_MINSUBVERSION 0
-
int BKE_read_file(struct bContext *C, const char *filepath, struct ReportList *reports);
#define BKE_READ_FILE_FAIL 0 /* no load */
diff --git a/source/blender/blenkernel/BKE_displist.h b/source/blender/blenkernel/BKE_displist.h
index 766981a6fea..68745975dae 100644
--- a/source/blender/blenkernel/BKE_displist.h
+++ b/source/blender/blenkernel/BKE_displist.h
@@ -101,7 +101,6 @@ extern void shadeDispList(struct Scene *scene, struct Base *base);
extern void shadeMeshMCol(struct Scene *scene, struct Object *ob, struct Mesh *me);
int surfindex_displist(DispList *dl, int a, int *b, int *p1, int *p2, int *p3, int *p4);
-void imagestodisplist(void);
void reshadeall_displist(struct Scene *scene);
void filldisplist(struct ListBase *dispbase, struct ListBase *to, int flipnormal);
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index 0896dfbabb1..41e41eab78f 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -71,9 +71,6 @@ typedef struct bNodeSocketType {
/* after this line is used internal only */
struct bNodeSocket *sock; /* used during verify_types */
- struct bNodeSocket *internsock; /* group nodes, the internal socket counterpart */
- int own_index; /* verify group nodes */
-
} bNodeSocketType;
typedef struct bNodeType {
@@ -130,6 +127,10 @@ typedef struct bNodeType {
#define NODE_CLASS_PATTERN 12
#define NODE_CLASS_TEXTURE 13
+/* enum values for input/output */
+#define SOCK_IN 1
+#define SOCK_OUT 2
+
/* ************** GENERIC API, TREES *************** */
void ntreeVerifyTypes(struct bNodeTree *ntree);
@@ -137,7 +138,7 @@ void ntreeVerifyTypes(struct bNodeTree *ntree);
struct bNodeTree *ntreeAddTree(const char *name, int type, const short is_group);
void ntreeInitTypes(struct bNodeTree *ntree);
-void ntreeMakeOwnType(struct bNodeTree *ntree);
+//void ntreeMakeGroupSockets(struct bNodeTree *ntree);
void ntreeUpdateType(struct bNodeTree *ntree, struct bNodeType *ntype);
void ntreeFreeTree(struct bNodeTree *ntree);
struct bNodeTree *ntreeCopyTree(struct bNodeTree *ntree);
@@ -178,14 +179,14 @@ void nodeUpdateType(struct bNodeTree *ntree, struct bNode* node, struct bNodeT
void nodeMakeDynamicType(struct bNode *node);
int nodeDynamicUnlinkText(struct ID *txtid);
void nodeFreeNode(struct bNodeTree *ntree, struct bNode *node);
-struct bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node, int internal);
+struct bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node);
struct bNodeLink *nodeAddLink(struct bNodeTree *ntree, struct bNode *fromnode, struct bNodeSocket *fromsock, struct bNode *tonode, struct bNodeSocket *tosock);
void nodeRemLink(struct bNodeTree *ntree, struct bNodeLink *link);
void nodeRemSocketLinks(struct bNodeTree *ntree, struct bNodeSocket *sock);
struct bNode *nodeFindNodebyName(struct bNodeTree *ntree, const char *name);
-int nodeFindNode(struct bNodeTree *ntree, struct bNodeSocket *sock, struct bNode **nodep, int *sockindex);
+int nodeFindNode(struct bNodeTree *ntree, struct bNodeSocket *sock, struct bNode **nodep, int *sockindex, int *in_out);
struct bNodeLink *nodeFindLink(struct bNodeTree *ntree, struct bNodeSocket *from, struct bNodeSocket *to);
int nodeCountSocketLinks(struct bNodeTree *ntree, struct bNodeSocket *sock);
@@ -205,10 +206,15 @@ void ntreeClearTags(struct bNodeTree *ntree);
struct bNode *nodeMakeGroupFromSelected(struct bNodeTree *ntree);
int nodeGroupUnGroup(struct bNodeTree *ntree, struct bNode *gnode);
-void nodeVerifyGroup(struct bNodeTree *ngroup);
+void nodeGroupVerify(struct bNodeTree *ngroup);
void nodeGroupSocketUseFlags(struct bNodeTree *ngroup);
-void nodeCopyGroup(struct bNode *gnode);
+void nodeGroupCopy(struct bNode *gnode);
+
+struct bNodeSocket *nodeGroupAddSocket(struct bNodeTree *ngroup, const char *name, int type, int in_out);
+struct bNodeSocket *nodeGroupExposeSocket(struct bNodeTree *ngroup, struct bNodeSocket *sock, int in_out);
+void nodeGroupExposeAllSockets(struct bNodeTree *ngroup);
+void nodeGroupRemoveSocket(struct bNodeTree *ngroup, struct bNodeSocket *gsock, int in_out);
/* ************** COMMON NODES *************** */
diff --git a/source/blender/blenkernel/depsgraph_private.h b/source/blender/blenkernel/depsgraph_private.h
index 808ce661628..4f99dacbc08 100644
--- a/source/blender/blenkernel/depsgraph_private.h
+++ b/source/blender/blenkernel/depsgraph_private.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/BME_Customdata.c b/source/blender/blenkernel/intern/BME_Customdata.c
index b64efa811de..d2c00d21df3 100644
--- a/source/blender/blenkernel/intern/BME_Customdata.c
+++ b/source/blender/blenkernel/intern/BME_Customdata.c
@@ -1,4 +1,4 @@
-/**
+/*
* BME_customdata.c jan 2007
*
* Custom Data functions for Bmesh
diff --git a/source/blender/blenkernel/intern/BME_conversions.c b/source/blender/blenkernel/intern/BME_conversions.c
index e80d4827155..4f1102bb828 100644
--- a/source/blender/blenkernel/intern/BME_conversions.c
+++ b/source/blender/blenkernel/intern/BME_conversions.c
@@ -1,4 +1,4 @@
-/**
+/*
* BME_mesh.c jan 2007
*
* BMesh mesh level functions.
diff --git a/source/blender/blenkernel/intern/BME_eulers.c b/source/blender/blenkernel/intern/BME_eulers.c
index cd9429982dc..9d68866bc99 100644
--- a/source/blender/blenkernel/intern/BME_eulers.c
+++ b/source/blender/blenkernel/intern/BME_eulers.c
@@ -1,4 +1,4 @@
-/**
+/*
* BME_eulers.c jan 2007
*
* BMesh Euler construction API.
diff --git a/source/blender/blenkernel/intern/BME_mesh.c b/source/blender/blenkernel/intern/BME_mesh.c
index 1bb419937b0..ca5d0b412ed 100644
--- a/source/blender/blenkernel/intern/BME_mesh.c
+++ b/source/blender/blenkernel/intern/BME_mesh.c
@@ -1,4 +1,4 @@
-/**
+/*
* BME_mesh.c jan 2007
*
* BMesh mesh level functions.
diff --git a/source/blender/blenkernel/intern/BME_structure.c b/source/blender/blenkernel/intern/BME_structure.c
index 9463d22e3be..8970e7ff705 100644
--- a/source/blender/blenkernel/intern/BME_structure.c
+++ b/source/blender/blenkernel/intern/BME_structure.c
@@ -1,4 +1,4 @@
-/**
+/*
* BME_structure.c jan 2007
*
* Low level routines for manipulating the BMesh structure.
diff --git a/source/blender/blenkernel/intern/BME_tools.c b/source/blender/blenkernel/intern/BME_tools.c
index 0c8352ad8b0..2b28fb705fd 100644
--- a/source/blender/blenkernel/intern/BME_tools.c
+++ b/source/blender/blenkernel/intern/BME_tools.c
@@ -1,4 +1,4 @@
-/**
+/*
* BME_tools.c jan 2007
*
* Functions for changing the topology of a mesh.
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 79e23b77306..ed636e95b96 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c
index 328f2ccdc75..14a0f71f824 100644
--- a/source/blender/blenkernel/intern/action.c
+++ b/source/blender/blenkernel/intern/action.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c
index 08d506f94b8..a8c369a9b7b 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim.c
@@ -1,4 +1,4 @@
-/** anim.c
+/* anim.c
*
*
* $Id$
diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c
index dead11c692c..2268a1535bd 100644
--- a/source/blender/blenkernel/intern/anim_sys.c
+++ b/source/blender/blenkernel/intern/anim_sys.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 3174954423f..49c151947a4 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/bmesh_private.h b/source/blender/blenkernel/intern/bmesh_private.h
index 713194c9806..b14383378ab 100644
--- a/source/blender/blenkernel/intern/bmesh_private.h
+++ b/source/blender/blenkernel/intern/bmesh_private.h
@@ -1,4 +1,4 @@
-/**
+/*
* BME_private.h jan 2007
*
* low level, 'private' function prototypes for bmesh kernel.
diff --git a/source/blender/blenkernel/intern/bmfont.c b/source/blender/blenkernel/intern/bmfont.c
index aa0669903c5..1d4bdf8bf44 100644
--- a/source/blender/blenkernel/intern/bmfont.c
+++ b/source/blender/blenkernel/intern/bmfont.c
@@ -1,4 +1,4 @@
-/**
+/*
* bmfont.c
*
* 04-10-2000 frank
diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index 473be5a3ee0..15404acc105 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c
index db7b9b276a2..949be31354c 100644
--- a/source/blender/blenkernel/intern/bvhutils.c
+++ b/source/blender/blenkernel/intern/bvhutils.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* $Id$
*
diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c
index 39cb1346eb7..09f18514277 100644
--- a/source/blender/blenkernel/intern/cloth.c
+++ b/source/blender/blenkernel/intern/cloth.c
@@ -1,29 +1,29 @@
-/* cloth.c
-*
-*
-* ***** BEGIN GPL LICENSE BLOCK *****
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License
-* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software Foundation,
-* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*
-* The Original Code is Copyright (C) Blender Foundation
-* All rights reserved.
-*
-* Contributor(s): Daniel Genrich
-*
-* ***** END GPL LICENSE BLOCK *****
-*/
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) Blender Foundation
+ * All rights reserved.
+ *
+ * Contributor(s): Daniel Genrich
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
#include "MEM_guardedalloc.h"
diff --git a/source/blender/blenkernel/intern/collision.c b/source/blender/blenkernel/intern/collision.c
index 3c0453c82a5..623ba26e86d 100644
--- a/source/blender/blenkernel/intern/collision.c
+++ b/source/blender/blenkernel/intern/collision.c
@@ -1,31 +1,31 @@
-/* collision.c
-*
-*
-* ***** BEGIN GPL LICENSE BLOCK *****
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License
-* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software Foundation,
-* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*
-* The Original Code is Copyright (C) Blender Foundation
-* All rights reserved.
-*
-* The Original Code is: all of this file.
-*
-* Contributor(s): none yet.
-*
-* ***** END GPL LICENSE BLOCK *****
-*/
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) Blender Foundation
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
#include "MEM_guardedalloc.h"
diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c
index e7efc09ec6e..827dddf34d3 100644
--- a/source/blender/blenkernel/intern/constraint.c
+++ b/source/blender/blenkernel/intern/constraint.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index 58a7944f78b..a80b6dfab7d 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index d102a83d69f..c437c4fe61f 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index 837c3bd8356..b59109c3f2a 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -1936,11 +1936,6 @@ float *makeOrcoDispList(Scene *scene, Object *ob, DerivedMesh *derivedFinal, int
return orco;
}
-void imagestodisplist(void)
-{
- /* removed */
-}
-
/* this is confusing, there's also min_max_object, appplying the obmat... */
static void boundbox_displist(Object *ob)
{
diff --git a/source/blender/blenkernel/intern/exotic.c b/source/blender/blenkernel/intern/exotic.c
index e7596001400..4a6638ff3a0 100644
--- a/source/blender/blenkernel/intern/exotic.c
+++ b/source/blender/blenkernel/intern/exotic.c
@@ -1,4 +1,5 @@
-/* exotic.c
+/*
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -20,14 +21,15 @@
* All rights reserved.
*
*
- * Contributor(s):
+ * Contributor(s):
* - Martin DeMello
* Added dxf_read_arc, dxf_read_ellipse and dxf_read_lwpolyline
* Copyright (C) 2004 by Etheract Software Labs
*
* - Blender Foundation
*
- * ***** END GPL LICENSE BLOCK *****/
+ * ***** END GPL LICENSE BLOCK ****
+ */
#include <stddef.h>
#include "BLI_storage.h"
diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c
index fc5aecb5def..b50943ba9f1 100644
--- a/source/blender/blenkernel/intern/fcurve.c
+++ b/source/blender/blenkernel/intern/fcurve.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/fluidsim.c b/source/blender/blenkernel/intern/fluidsim.c
index 3db9731310c..bb56a5b176a 100644
--- a/source/blender/blenkernel/intern/fluidsim.c
+++ b/source/blender/blenkernel/intern/fluidsim.c
@@ -1,6 +1,5 @@
-/**
- * fluidsim.c
- *
+/*
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c
index e4aeb45a209..f979973f55d 100644
--- a/source/blender/blenkernel/intern/fmodifier.c
+++ b/source/blender/blenkernel/intern/fmodifier.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index c3e2d7ffcf4..abd7c12ff70 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/icons.c b/source/blender/blenkernel/intern/icons.c
index b575305171a..8ce3847bf08 100644
--- a/source/blender/blenkernel/intern/icons.c
+++ b/source/blender/blenkernel/intern/icons.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/idcode.c b/source/blender/blenkernel/intern/idcode.c
index e4086827e5d..c63d1e45da8 100644
--- a/source/blender/blenkernel/intern/idcode.c
+++ b/source/blender/blenkernel/intern/idcode.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/idprop.c b/source/blender/blenkernel/intern/idprop.c
index 97fbcce1aec..b3119f317a5 100644
--- a/source/blender/blenkernel/intern/idprop.c
+++ b/source/blender/blenkernel/intern/idprop.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/implicit.c b/source/blender/blenkernel/intern/implicit.c
index 8004f23c22a..207c667f335 100644
--- a/source/blender/blenkernel/intern/implicit.c
+++ b/source/blender/blenkernel/intern/implicit.c
@@ -1,31 +1,31 @@
-/* implicit.c
-*
-*
-* ***** BEGIN GPL LICENSE BLOCK *****
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License
-* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software Foundation,
-* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*
-* The Original Code is Copyright (C) Blender Foundation
-* All rights reserved.
-*
-* The Original Code is: all of this file.
-*
-* Contributor(s): none yet.
-*
-* ***** END GPL LICENSE BLOCK *****
-*/
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) Blender Foundation
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
#include "MEM_guardedalloc.h"
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index bd7fdfebe97..b0f90ef8042 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -1,4 +1,4 @@
-/**
+/*
* lattice.c
*
*
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 28410a7cc0e..eab99eca7df 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c
index cd52a38140a..f56c72669e8 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -873,7 +873,7 @@ static void init_render_nodetree(bNodeTree *ntree, Material *basemat, int r_mode
if(ma!=basemat) {
do_init_render_material(ma, r_mode, amb);
basemat->texco |= ma->texco;
- basemat->mode_l |= ma->mode_l;
+ basemat->mode_l |= ma->mode_l & ~(MA_TRANSP|MA_ZTRANSP|MA_RAYTRANSP);
}
}
else if(node->type==NODE_GROUP)
diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c
index d89bc3cd6f2..4f44875b7ea 100644
--- a/source/blender/blenkernel/intern/mball.c
+++ b/source/blender/blenkernel/intern/mball.c
@@ -1,4 +1,4 @@
-/** mball.c
+/* mball.c
*
* MetaBalls are created from a single Object (with a name without number in it),
* here the DispList and BoundBox also is located.
diff --git a/source/blender/blenkernel/intern/mesh_validate.c b/source/blender/blenkernel/intern/mesh_validate.c
index e5aacdf2cf9..8b0b7a041dc 100644
--- a/source/blender/blenkernel/intern/mesh_validate.c
+++ b/source/blender/blenkernel/intern/mesh_validate.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index db0c649d290..7439a47a746 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -247,6 +247,11 @@ int modifiers_getCageIndex(struct Scene *scene, Object *ob, int *lastPossibleCag
ModifierData *md = (virtual_)? modifiers_getVirtualModifierList(ob): ob->modifiers.first;
int i, cageIndex = -1;
+ if(lastPossibleCageIndex_r) {
+ /* ensure the value is initialized */
+ *lastPossibleCageIndex_r= -1;
+ }
+
/* Find the last modifier acting on the cage. */
for (i=0; md; i++,md=md->next) {
ModifierTypeInfo *mti = modifierType_getInfo(md->type);
diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c
index da0f3f8a448..df012c47f66 100644
--- a/source/blender/blenkernel/intern/nla.c
+++ b/source/blender/blenkernel/intern/nla.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index 057d90dc8bb..320bead1c61 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,12 +31,18 @@
#include <Python.h>
#endif
+#include "MEM_guardedalloc.h"
+
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
+#include <limits.h>
#include "DNA_anim_types.h"
#include "DNA_action_types.h"
+#include "DNA_node_types.h"
+
+#include "BLI_listbase.h"
#include "RNA_access.h"
@@ -45,6 +51,7 @@
#include "BKE_fcurve.h"
#include "BKE_node.h"
#include "BKE_utildefines.h"
+#include "BKE_node.h"
#include "PIL_time.h"
@@ -64,22 +71,14 @@ ListBase node_all_textures = {NULL, NULL};
/* ************** Type stuff ********** */
-static bNodeType *node_get_type(bNodeTree *ntree, int type, bNodeTree *ngroup, ID *id)
+static bNodeType *node_get_type(bNodeTree *ntree, int type, ID *id)
{
- if(type==NODE_GROUP) {
- if(ngroup && GS(ngroup->id.name)==ID_NT) {
- return ngroup->owntype;
- }
- return NULL;
- }
- else {
- bNodeType *ntype = ntree->alltypes.first;
- for(; ntype; ntype= ntype->next)
- if(ntype->type==type && id==ntype->id )
- return ntype;
-
- return NULL;
- }
+ bNodeType *ntype = ntree->alltypes.first;
+ for(; ntype; ntype= ntype->next)
+ if(ntype->type==type && id==ntype->id )
+ return ntype;
+
+ return NULL;
}
void ntreeInitTypes(bNodeTree *ntree)
@@ -102,11 +101,11 @@ void ntreeInitTypes(bNodeTree *ntree)
if(node->type==NODE_DYNAMIC) {
bNodeType *stype= NULL;
if(node->id==NULL) { /* empty script node */
- stype= node_get_type(ntree, node->type, NULL, NULL);
+ stype= node_get_type(ntree, node->type, NULL);
} else { /* not an empty script node */
- stype= node_get_type(ntree, node->type, NULL, node->id);
+ stype= node_get_type(ntree, node->type, node->id);
if(!stype) {
- stype= node_get_type(ntree, node->type, NULL, NULL);
+ stype= node_get_type(ntree, node->type, NULL);
/* needed info if the pynode script fails now: */
if (node->id) node->storage= ntree;
} else {
@@ -118,7 +117,7 @@ void ntreeInitTypes(bNodeTree *ntree)
if(node->typeinfo)
node->typeinfo->initfunc(node);
} else {
- node->typeinfo= node_get_type(ntree, node->type, (bNodeTree *)node->id, NULL);
+ node->typeinfo= node_get_type(ntree, node->type, NULL);
}
if(node->typeinfo==NULL) {
@@ -152,9 +151,6 @@ static bNodeSocket *node_add_socket_type(ListBase *lb, bNodeSocketType *stype)
else sock->limit= stype->limit;
sock->type= stype->type;
- sock->to_index= stype->own_index;
- sock->tosock= stype->internsock;
-
sock->ns.vec[0]= stype->val1;
sock->ns.vec[1]= stype->val2;
sock->ns.vec[2]= stype->val3;
@@ -168,6 +164,30 @@ static bNodeSocket *node_add_socket_type(ListBase *lb, bNodeSocketType *stype)
return sock;
}
+static bNodeSocket *node_add_group_socket(ListBase *lb, bNodeSocket *gsock)
+{
+ bNodeSocket *sock= MEM_callocN(sizeof(bNodeSocket), "sock");
+
+ /* make a copy of the group socket */
+ *sock = *gsock;
+ sock->link = NULL;
+ sock->next = sock->prev = NULL;
+ sock->new_sock = NULL;
+ sock->ns.data = NULL;
+
+ sock->own_index = gsock->own_index;
+ sock->groupsock = gsock;
+ /* XXX hack: group socket input/output roles are inverted internally,
+ * need to change the limit value when making actual node sockets from them.
+ */
+ sock->limit = (gsock->limit==1 ? 0xFFF : 1);
+
+ if(lb)
+ BLI_addtail(lb, sock);
+
+ return sock;
+}
+
static void node_rem_socket(bNodeTree *ntree, ListBase *lb, bNodeSocket *sock)
{
bNodeLink *link, *next;
@@ -188,18 +208,16 @@ static bNodeSocket *verify_socket(ListBase *lb, bNodeSocketType *stype)
bNodeSocket *sock;
for(sock= lb->first; sock; sock= sock->next) {
- /* both indices are zero for non-groups, otherwise it's a unique index */
- if(sock->to_index==stype->own_index)
- if(strncmp(sock->name, stype->name, NODE_MAXSTR)==0)
- break;
+ if(strncmp(sock->name, stype->name, NODE_MAXSTR)==0)
+ break;
}
if(sock) {
sock->type= stype->type; /* in future, read this from tydefs! */
if(stype->limit==0) sock->limit= 0xFFF;
else sock->limit= stype->limit;
+
sock->ns.min= stype->min;
sock->ns.max= stype->max;
- sock->tosock= stype->internsock;
BLI_remlink(lb, sock);
@@ -210,6 +228,37 @@ static bNodeSocket *verify_socket(ListBase *lb, bNodeSocketType *stype)
}
}
+static bNodeSocket *verify_group_socket(ListBase *lb, bNodeSocket *gsock)
+{
+ bNodeSocket *sock;
+
+ for(sock= lb->first; sock; sock= sock->next) {
+ if(sock->own_index==gsock->own_index)
+ break;
+ }
+ if(sock) {
+ sock->groupsock = gsock;
+
+ strcpy(sock->name, gsock->name);
+ sock->type= gsock->type;
+
+ /* XXX hack: group socket input/output roles are inverted internally,
+ * need to change the limit value when making actual node sockets from them.
+ */
+ sock->limit = (gsock->limit==1 ? 0xFFF : 1);
+
+ sock->ns.min= gsock->ns.min;
+ sock->ns.max= gsock->ns.max;
+
+ BLI_remlink(lb, sock);
+
+ return sock;
+ }
+ else {
+ return node_add_group_socket(NULL, gsock);
+ }
+}
+
static void verify_socket_list(bNodeTree *ntree, ListBase *lb, bNodeSocketType *stype_first)
{
bNodeSocketType *stype;
@@ -238,15 +287,41 @@ static void verify_socket_list(bNodeTree *ntree, ListBase *lb, bNodeSocketType *
}
}
-void nodeVerifyType(bNodeTree *ntree, bNode *node)
+static void verify_group_socket_list(bNodeTree *ntree, ListBase *lb, ListBase *glb)
{
- bNodeType *ntype= node->typeinfo;
+ bNodeSocket *gsock;
- if(ntype) {
- /* might add some other verify stuff here */
-
- verify_socket_list(ntree, &node->inputs, ntype->inputs);
- verify_socket_list(ntree, &node->outputs, ntype->outputs);
+ /* step by step compare */
+ for (gsock= glb->first; gsock; gsock=gsock->next) {
+ /* abusing new_sock pointer for verification here! only used inside this function */
+ gsock->new_sock= verify_group_socket(lb, gsock);
+ }
+ /* leftovers are removed */
+ while(lb->first)
+ node_rem_socket(ntree, lb, lb->first);
+ /* and we put back the verified sockets */
+ for (gsock= glb->first; gsock; gsock=gsock->next) {
+ BLI_addtail(lb, gsock->new_sock);
+ gsock->new_sock = NULL;
+ }
+}
+
+void nodeVerifyType(bNodeTree *ntree, bNode *node)
+{
+ /* node groups don't have static sock lists, but use external sockets from the tree instead */
+ if (node->type==NODE_GROUP) {
+ bNodeTree *ngroup= (bNodeTree*)node->id;
+ if (ngroup) {
+ verify_group_socket_list(ntree, &node->inputs, &ngroup->inputs);
+ verify_group_socket_list(ntree, &node->outputs, &ngroup->outputs);
+ }
+ }
+ else {
+ bNodeType *ntype= node->typeinfo;
+ if(ntype) {
+ verify_socket_list(ntree, &node->inputs, ntype->inputs);
+ verify_socket_list(ntree, &node->outputs, ntype->outputs);
+ }
}
}
@@ -283,176 +358,20 @@ void register_node_type_group(ListBase *lb)
nodeRegisterType(lb, &ntype_group);
}
-/* tag internal sockets */
-static void group_tag_internal_sockets(bNodeTree *ngroup)
+static bNodeSocket *find_group_node_input(bNode *gnode, bNodeSocket *gsock)
{
- bNode *node;
bNodeSocket *sock;
- bNodeLink *link;
-
- /* clear intern tag, but check already for hidden sockets */
- for(node= ngroup->nodes.first; node; node= node->next) {
- for(sock= node->inputs.first; sock; sock= sock->next)
- sock->intern= sock->flag & SOCK_HIDDEN;
- for(sock= node->outputs.first; sock; sock= sock->next)
- sock->intern= sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL);
- }
- /* set tag */
- for(link= ngroup->links.first; link; link= link->next) {
- link->fromsock->intern= 1;
- link->tosock->intern= 1;
- }
-
- /* remove link pointer to external links (only happens on create group) */
- for(node= ngroup->nodes.first; node; node= node->next) {
- for(sock= node->inputs.first; sock; sock= sock->next)
- if(sock->intern==0)
- sock->link= NULL;
- }
-
- /* set all intern sockets to own_index zero, makes sure that later use won't mixup */
- for(node= ngroup->nodes.first; node; node= node->next) {
- for(sock= node->inputs.first; sock; sock= sock->next)
- if(sock->intern)
- sock->own_index= 0;
- for(sock= node->outputs.first; sock; sock= sock->next)
- if(sock->intern)
- sock->own_index= 0;
- }
-}
-
-/* after editing group, new sockets are zero */
-/* this routine ensures unique identifiers for zero sockets that are exposed */
-static void group_verify_own_indices(bNodeTree *ngroup)
-{
- bNode *node;
- bNodeSocket *sock;
-
- for(node= ngroup->nodes.first; node; node= node->next) {
- for(sock= node->inputs.first; sock; sock= sock->next)
- if(sock->own_index==0 && sock->intern==0)
- sock->own_index= ++(ngroup->cur_index);
- for(sock= node->outputs.first; sock; sock= sock->next)
- if(sock->own_index==0 && sock->intern==0)
- sock->own_index= ++(ngroup->cur_index);
- }
- //printf("internal index %d\n", ngroup->cur_index);
-}
-
-
-/* nodetrees can be used as groups, so we need typeinfo structs generated */
-void ntreeMakeOwnType(bNodeTree *ngroup)
-{
- bNode *node;
- bNodeSocket *sock;
- int totin= 0, totout=0, a;
-
- /* tags socket when internal linked */
- group_tag_internal_sockets(ngroup);
-
- /* ensure all sockets have own unique id */
- group_verify_own_indices(ngroup);
-
- /* counting stats */
- for(node= ngroup->nodes.first; node; node= node->next) {
- if(node->type==NODE_GROUP)
- break;
- for(sock= node->inputs.first; sock; sock= sock->next)
- if(sock->intern==0)
- totin++;
- for(sock= node->outputs.first; sock; sock= sock->next)
- if(sock->intern==0)
- totout++;
- }
- /* debug: nodetrees in nodetrees not handled yet */
- if(node) {
- printf("group in group, not supported yet\n");
- return;
- }
-
- /* free own type struct */
- if(ngroup->owntype) {
- if(ngroup->owntype->inputs)
- MEM_freeN(ngroup->owntype->inputs);
- if(ngroup->owntype->outputs)
- MEM_freeN(ngroup->owntype->outputs);
- MEM_freeN(ngroup->owntype);
- }
-
- /* make own type struct */
- ngroup->owntype= MEM_callocN(sizeof(bNodeType), "group type");
- *ngroup->owntype= ntype_group; /* copy data, for init */
-
- /* input type arrays */
- if(totin) {
- bNodeSocketType *stype;
- bNodeSocketType *inputs= MEM_callocN(sizeof(bNodeSocketType)*(totin+1), "bNodeSocketType");
- a= 0;
-
- for(node= ngroup->nodes.first; node; node= node->next) {
- /* nodes are presumed fully verified, stype and socket list are in sync */
- stype= node->typeinfo->inputs;
- for(sock= node->inputs.first; sock; sock= sock->next, stype++) {
- if(sock->intern==0) {
- /* debug only print */
- if(stype==NULL || stype->type==-1) printf("group verification error %s\n", ngroup->id.name);
-
- inputs[a]= *stype;
- inputs[a].own_index= sock->own_index;
- inputs[a].internsock= sock;
- a++;
- }
- }
- }
- inputs[a].type= -1; /* terminator code */
- ngroup->owntype->inputs= inputs;
- }
-
- /* output type arrays */
- if(totout) {
- bNodeSocketType *stype;
- bNodeSocketType *outputs= MEM_callocN(sizeof(bNodeSocketType)*(totout+1), "bNodeSocketType");
- a= 0;
-
- for(node= ngroup->nodes.first; node; node= node->next) {
- /* nodes are presumed fully verified, stype and socket list are in sync */
- stype= node->typeinfo->outputs;
- for(sock= node->outputs.first; sock; sock= sock->next, stype++) {
- if(sock->intern==0) {
- /* debug only print */
- if(stype==NULL || stype->type==-1) printf("group verification error %s\n", ngroup->id.name);
-
- outputs[a]= *stype;
- outputs[a].own_index= sock->own_index;
- outputs[a].internsock= sock;
- a++;
- }
- }
- }
- outputs[a].type= -1; /* terminator code */
- ngroup->owntype->outputs= outputs;
- }
-
- /* voila, the nodetree has the full definition for generating group-node instances! */
-}
-
-
-static bNodeSocket *groupnode_find_tosock(bNode *gnode, int index)
-{
- bNodeSocket *sock;
-
- for(sock= gnode->inputs.first; sock; sock= sock->next)
- if(sock->to_index==index)
+ for (sock=gnode->inputs.first; sock; sock=sock->next)
+ if (sock->groupsock == gsock)
return sock;
return NULL;
}
-static bNodeSocket *groupnode_find_fromsock(bNode *gnode, int index)
+static bNodeSocket *find_group_node_output(bNode *gnode, bNodeSocket *gsock)
{
bNodeSocket *sock;
-
- for(sock= gnode->outputs.first; sock; sock= sock->next)
- if(sock->to_index==index)
+ for (sock=gnode->outputs.first; sock; sock=sock->next)
+ if (sock->groupsock == gsock)
return sock;
return NULL;
}
@@ -461,8 +380,8 @@ bNode *nodeMakeGroupFromSelected(bNodeTree *ntree)
{
bNodeLink *link, *linkn;
bNode *node, *gnode, *nextn;
- bNodeSocket *sock;
bNodeTree *ngroup;
+ bNodeSocket *gsock;
ListBase anim_basepaths = {NULL, NULL};
float min[2], max[2];
int totnode=0;
@@ -485,9 +404,9 @@ bNode *nodeMakeGroupFromSelected(bNodeTree *ntree)
/* check if all connections are OK, no unselected node has both
inputs and outputs to a selection */
for(link= ntree->links.first; link; link= link->next) {
- if(link->fromnode->flag & NODE_SELECT)
+ if(link->fromnode && link->tonode && link->fromnode->flag & NODE_SELECT)
link->tonode->done |= 1;
- if(link->tonode->flag & NODE_SELECT)
+ if(link->fromnode && link->tonode && link->tonode->flag & NODE_SELECT)
link->fromnode->done |= 2;
}
@@ -526,26 +445,9 @@ bNode *nodeMakeGroupFromSelected(bNodeTree *ntree)
node->locx-= 0.5f*(min[0]+max[0]);
node->locy-= 0.5f*(min[1]+max[1]);
-
- /* set socket own_index to zero since it can still have a value
- * from being in a group before, otherwise it doesn't get a unique
- * index in group_verify_own_indices */
- for(sock= node->inputs.first; sock; sock= sock->next)
- sock->own_index= 0;
- for(sock= node->outputs.first; sock; sock= sock->next)
- sock->own_index= 0;
}
}
- /* move links over */
- for(link= ntree->links.first; link; link= linkn) {
- linkn= link->next;
- if(link->fromnode->flag & link->tonode->flag & NODE_SELECT) {
- BLI_remlink(&ntree->links, link);
- BLI_addtail(&ngroup->links, link);
- }
- }
-
/* move animation data over */
if (ntree->adt) {
LinkData *ld, *ldn=NULL;
@@ -561,9 +463,6 @@ bNode *nodeMakeGroupFromSelected(bNodeTree *ntree)
}
}
- /* now we can make own group typeinfo */
- ntreeMakeOwnType(ngroup);
-
/* make group node */
gnode= nodeAddNodeType(ntree, NODE_GROUP, ngroup, NULL);
gnode->locx= 0.5f*(min[0]+max[0]);
@@ -573,35 +472,29 @@ bNode *nodeMakeGroupFromSelected(bNodeTree *ntree)
for(link= ntree->links.first; link; link= linkn) {
linkn= link->next;
- if(link->tonode->flag & NODE_SELECT) {
- link->tonode= gnode;
- sock= groupnode_find_tosock(gnode, link->tosock->own_index);
- if(sock==NULL) {
- nodeRemLink(ntree, link);
- printf("Removed link, cannot mix internal and external sockets in group\n");
- }
- else link->tosock= sock;
+ if(link->fromnode && link->tonode && (link->fromnode->flag & link->tonode->flag & NODE_SELECT)) {
+ BLI_remlink(&ntree->links, link);
+ BLI_addtail(&ngroup->links, link);
}
- else if(link->fromnode->flag & NODE_SELECT) {
- link->fromnode= gnode;
- sock= groupnode_find_fromsock(gnode, link->fromsock->own_index);
- if(sock==NULL) {
- nodeRemLink(ntree, link);
- printf("Removed link, cannot mix internal and external sockets in group\n");
- }
- else link->fromsock= sock;
+ else if(link->tonode && (link->tonode->flag & NODE_SELECT)) {
+ gsock = nodeGroupExposeSocket(ngroup, link->tosock, SOCK_IN);
+ link->tosock->link = nodeAddLink(ngroup, NULL, gsock, link->tonode, link->tosock);
+ link->tosock = node_add_group_socket(&gnode->inputs, gsock);
+ link->tonode = gnode;
}
- }
-
- /* initialize variables of unused input sockets */
- for(node= ngroup->nodes.first; node; node= node->next) {
- for(sock= node->inputs.first; sock; sock= sock->next) {
- if(sock->intern==0) {
- bNodeSocket *nsock= groupnode_find_tosock(gnode, sock->own_index);
- if(nsock) {
- QUATCOPY(nsock->ns.vec, sock->ns.vec);
- }
+ else if(link->fromnode && (link->fromnode->flag & NODE_SELECT)) {
+ /* search for existing group node socket */
+ for (gsock=ngroup->outputs.first; gsock; gsock=gsock->next)
+ if (gsock->link && gsock->link->fromsock==link->fromsock)
+ break;
+ if (!gsock) {
+ gsock = nodeGroupExposeSocket(ngroup, link->fromsock, SOCK_OUT);
+ gsock->link = nodeAddLink(ngroup, link->fromnode, link->fromsock, NULL, gsock);
+ link->fromsock = node_add_group_socket(&gnode->outputs, gsock);
}
+ else
+ link->fromsock = find_group_node_output(gnode, gsock);
+ link->fromnode = gnode;
}
}
@@ -611,41 +504,21 @@ bNode *nodeMakeGroupFromSelected(bNodeTree *ntree)
return gnode;
}
-/* note: ungroup: group_indices zero! */
-
/* here's a nasty little one, need to check users... */
/* should become callbackable... */
-void nodeVerifyGroup(bNodeTree *ngroup)
+void nodeGroupVerify(bNodeTree *ngroup)
{
- /* XXX nodeVerifyGroup is sometimes called for non-group trees.
- * This is not the best way to check if a tree is a group,
- * trees should get their own flag for this!
- */
- if (!ngroup->owntype)
- return;
-
/* group changed, so we rebuild the type definition */
- ntreeMakeOwnType(ngroup);
+// ntreeMakeGroupSockets(ngroup);
if(ngroup->type==NTREE_SHADER) {
Material *ma;
for(ma= G.main->mat.first; ma; ma= ma->id.next) {
if(ma->nodetree) {
bNode *node;
-
- /* find if group is in tree */
for(node= ma->nodetree->nodes.first; node; node= node->next)
if(node->id == (ID *)ngroup)
- break;
-
- if(node) {
- /* set all type pointers OK */
- ntreeInitTypes(ma->nodetree);
-
- for(node= ma->nodetree->nodes.first; node; node= node->next)
- if(node->id == (ID *)ngroup)
- nodeVerifyType(ma->nodetree, node);
- }
+ nodeVerifyType(ma->nodetree, node);
}
}
}
@@ -654,20 +527,9 @@ void nodeVerifyGroup(bNodeTree *ngroup)
for(sce= G.main->scene.first; sce; sce= sce->id.next) {
if(sce->nodetree) {
bNode *node;
-
- /* find if group is in tree */
for(node= sce->nodetree->nodes.first; node; node= node->next)
if(node->id == (ID *)ngroup)
- break;
-
- if(node) {
- /* set all type pointers OK */
- ntreeInitTypes(sce->nodetree);
-
- for(node= sce->nodetree->nodes.first; node; node= node->next)
- if(node->id == (ID *)ngroup)
- nodeVerifyType(sce->nodetree, node);
- }
+ nodeVerifyType(sce->nodetree, node);
}
}
}
@@ -676,20 +538,9 @@ void nodeVerifyGroup(bNodeTree *ngroup)
for(tx= G.main->tex.first; tx; tx= tx->id.next) {
if(tx->nodetree) {
bNode *node;
-
- /* find if group is in tree */
for(node= tx->nodetree->nodes.first; node; node= node->next)
if(node->id == (ID *)ngroup)
- break;
-
- if(node) {
- /* set all type pointers OK */
- ntreeInitTypes(tx->nodetree);
-
- for(node= tx->nodetree->nodes.first; node; node= node->next)
- if(node->id == (ID *)ngroup)
- nodeVerifyType(tx->nodetree, node);
- }
+ nodeVerifyType(tx->nodetree, node);
}
}
}
@@ -716,15 +567,15 @@ void nodeGroupSocketUseFlags(bNodeTree *ngroup)
for(ma= G.main->mat.first; ma; ma= ma->id.next) {
if(ma->nodetree) {
for(node= ma->nodetree->nodes.first; node; node= node->next) {
- if(node->id==(ID *)ngroup) {
+ if(node->id==&ngroup->id) {
for(sock= node->inputs.first; sock; sock= sock->next)
if(sock->link)
- if(sock->tosock)
- sock->tosock->flag |= SOCK_IN_USE;
+ if(sock->groupsock)
+ sock->groupsock->flag |= SOCK_IN_USE;
for(sock= node->outputs.first; sock; sock= sock->next)
if(nodeCountSocketLinks(ma->nodetree, sock))
- if(sock->tosock)
- sock->tosock->flag |= SOCK_IN_USE;
+ if(sock->groupsock)
+ sock->groupsock->flag |= SOCK_IN_USE;
}
}
}
@@ -738,12 +589,12 @@ void nodeGroupSocketUseFlags(bNodeTree *ngroup)
if(node->id==(ID *)ngroup) {
for(sock= node->inputs.first; sock; sock= sock->next)
if(sock->link)
- if(sock->tosock)
- sock->tosock->flag |= SOCK_IN_USE;
+ if(sock->groupsock)
+ sock->groupsock->flag |= SOCK_IN_USE;
for(sock= node->outputs.first; sock; sock= sock->next)
if(nodeCountSocketLinks(sce->nodetree, sock))
- if(sock->tosock)
- sock->tosock->flag |= SOCK_IN_USE;
+ if(sock->groupsock)
+ sock->groupsock->flag |= SOCK_IN_USE;
}
}
}
@@ -757,12 +608,12 @@ void nodeGroupSocketUseFlags(bNodeTree *ngroup)
if(node->id==(ID *)ngroup) {
for(sock= node->inputs.first; sock; sock= sock->next)
if(sock->link)
- if(sock->tosock)
- sock->tosock->flag |= SOCK_IN_USE;
+ if(sock->groupsock)
+ sock->groupsock->flag |= SOCK_IN_USE;
for(sock= node->outputs.first; sock; sock= sock->next)
if(nodeCountSocketLinks(tx->nodetree, sock))
- if(sock->tosock)
- sock->tosock->flag |= SOCK_IN_USE;
+ if(sock->groupsock)
+ sock->groupsock->flag |= SOCK_IN_USE;
}
}
}
@@ -777,21 +628,27 @@ bNode *nodeFindNodebyName(bNodeTree *ntree, const char *name)
}
/* finds a node based on given socket */
-int nodeFindNode(bNodeTree *ntree, bNodeSocket *sock, bNode **nodep, int *sockindex)
+int nodeFindNode(bNodeTree *ntree, bNodeSocket *sock, bNode **nodep, int *sockindex, int *in_out)
{
bNode *node;
bNodeSocket *tsock;
int index= 0;
for(node= ntree->nodes.first; node; node= node->next) {
- for(index=0, tsock= node->inputs.first; tsock; tsock= tsock->next, index++)
- if(tsock==sock)
+ for(index=0, tsock= node->inputs.first; tsock; tsock= tsock->next, index++) {
+ if(tsock==sock) {
+ if (in_out) *in_out= SOCK_IN;
break;
+ }
+ }
if(tsock)
break;
- for(index=0, tsock= node->outputs.first; tsock; tsock= tsock->next, index++)
- if(tsock==sock)
+ for(index=0, tsock= node->outputs.first; tsock; tsock= tsock->next, index++) {
+ if(tsock==sock) {
+ if (in_out) *in_out= SOCK_OUT;
break;
+ }
+ }
if(tsock)
break;
}
@@ -813,7 +670,6 @@ int nodeGroupUnGroup(bNodeTree *ntree, bNode *gnode)
bNode *node, *nextn;
bNodeTree *ngroup, *wgroup;
ListBase anim_basepaths = {NULL, NULL};
- int index;
ngroup= (bNodeTree *)gnode->id;
if(ngroup==NULL) return 0;
@@ -855,7 +711,66 @@ int nodeGroupUnGroup(bNodeTree *ntree, bNode *gnode)
node->flag |= NODE_SELECT;
}
- /* and the internal links */
+
+ /* restore external links to and from the gnode */
+ for(link= ntree->links.first; link; link= link->next) {
+ if (link->fromnode==gnode) {
+ if (link->fromsock->groupsock) {
+ bNodeSocket *gsock= link->fromsock->groupsock;
+ if (gsock->link) {
+ if (gsock->link->fromnode) {
+ /* NB: using the new internal copies here! the groupsock pointer still maps to the old tree */
+ link->fromnode = (gsock->link->fromnode ? gsock->link->fromnode->new_node : NULL);
+ link->fromsock = gsock->link->fromsock->new_sock;
+ }
+ else {
+ /* group output directly maps to group input */
+ bNodeSocket *insock= find_group_node_input(gnode, gsock->link->fromsock);
+ if (insock->link) {
+ link->fromnode = insock->link->fromnode;
+ link->fromsock = insock->link->fromsock;
+ }
+ }
+ }
+ else {
+ /* constant group output: copy the stack value to the external socket.
+ * the link is kept here until all possible external users have been fixed.
+ */
+ QUATCOPY(link->tosock->ns.vec, gsock->ns.vec);
+ }
+ }
+ }
+ }
+ /* remove internal output links, these are not used anymore */
+ for(link=wgroup->links.first; link; link= linkn) {
+ linkn = link->next;
+ if (!link->tonode)
+ nodeRemLink(wgroup, link);
+ }
+ /* restore links from internal nodes */
+ for(link= wgroup->links.first; link; link= link->next) {
+ /* indicates link to group input */
+ if (!link->fromnode) {
+ /* NB: can't use find_group_node_input here,
+ * because gnode sockets still point to the old tree!
+ */
+ bNodeSocket *insock;
+ for (insock= gnode->inputs.first; insock; insock= insock->next)
+ if (insock->groupsock->new_sock == link->fromsock)
+ break;
+ if (insock->link) {
+ link->fromnode = insock->link->fromnode;
+ link->fromsock = insock->link->fromsock;
+ }
+ else {
+ /* uses group constant input. copy the input value and remove the dead link. */
+ QUATCOPY(link->tosock->ns.vec, insock->ns.vec);
+ nodeRemLink(wgroup, link);
+ }
+ }
+ }
+
+ /* add internal links to the ntree */
for(link= wgroup->links.first; link; link= linkn) {
linkn= link->next;
BLI_remlink(&wgroup->links, link);
@@ -884,44 +799,22 @@ int nodeGroupUnGroup(bNodeTree *ntree, bNode *gnode)
/* free temp action too */
free_libblock(&G.main->action, waction);
}
-
- /* restore links to and from the gnode */
- for(link= ntree->links.first; link; link= link->next) {
- if(link->tonode==gnode) {
- /* link->tosock->tosock is on the node we look for */
- nodeFindNode(ngroup, link->tosock->tosock, &nextn, &index);
- if(nextn==NULL) printf("wrong stuff!\n");
- else if(nextn->new_node==NULL) printf("wrong stuff too!\n");
- else {
- link->tonode= nextn->new_node;
- link->tosock= BLI_findlink(&link->tonode->inputs, index);
- }
- }
- else if(link->fromnode==gnode) {
- /* link->fromsock->tosock is on the node we look for */
- nodeFindNode(ngroup, link->fromsock->tosock, &nextn, &index);
- if(nextn==NULL) printf("1 wrong stuff!\n");
- else if(nextn->new_node==NULL) printf("1 wrong stuff too!\n");
- else {
- link->fromnode= nextn->new_node;
- link->fromsock= BLI_findlink(&link->fromnode->outputs, index);
- }
- }
- }
-
- /* remove the gnode & work tree */
- free_libblock(&G.main->nodetree, wgroup);
+ /* delete the group instance. this also removes old input links! */
nodeFreeNode(ntree, gnode);
+ /* free the group tree (takes care of user count) */
+ free_libblock(&G.main->nodetree, wgroup);
+
/* solve order goes fine, but the level tags not... doing it twice works for now. solve this once */
+ /* XXX is this still necessary with new groups? it may have been caused by non-updated sock->link pointers. lukas */
ntreeSolveOrder(ntree);
ntreeSolveOrder(ntree);
return 1;
}
-void nodeCopyGroup(bNode *gnode)
+void nodeGroupCopy(bNode *gnode)
{
bNodeSocket *sock;
@@ -930,34 +823,115 @@ void nodeCopyGroup(bNode *gnode)
/* new_sock was set in nodeCopyNode */
for(sock=gnode->inputs.first; sock; sock=sock->next)
- if(sock->tosock)
- sock->tosock= sock->tosock->new_sock;
+ if(sock->groupsock)
+ sock->groupsock= sock->groupsock->new_sock;
for(sock=gnode->outputs.first; sock; sock=sock->next)
- if(sock->tosock)
- sock->tosock= sock->tosock->new_sock;
+ if(sock->groupsock)
+ sock->groupsock= sock->groupsock->new_sock;
+}
+
+bNodeSocket *nodeGroupAddSocket(bNodeTree *ngroup, const char *name, int type, int in_out)
+{
+ bNodeSocket *gsock = MEM_callocN(sizeof(bNodeSocket), "bNodeSocket");
+
+ strncpy(gsock->name, name, sizeof(gsock->name));
+ gsock->type = type;
+ gsock->ns.sockettype = type;
+ gsock->ns.min = INT_MIN;
+ gsock->ns.max = INT_MAX;
+ zero_v4(gsock->ns.vec);
+ gsock->ns.data = NULL;
+ gsock->flag = 0;
+
+ gsock->next = gsock->prev = NULL;
+ gsock->new_sock = NULL;
+ gsock->link = NULL;
+ gsock->ns.data = NULL;
+ /* assign new unique index */
+ gsock->own_index = ngroup->cur_index++;
+ gsock->limit = (in_out==SOCK_IN ? 0xFFF : 1);
+
+ BLI_addtail(in_out==SOCK_IN ? &ngroup->inputs : &ngroup->outputs, gsock);
+
+ return gsock;
+}
+
+bNodeSocket *nodeGroupExposeSocket(bNodeTree *ngroup, bNodeSocket *sock, int in_out)
+{
+ bNodeSocket *gsock= nodeGroupAddSocket(ngroup, sock->name, sock->type, in_out);
+ /* initialize the default socket value */
+ QUATCOPY(gsock->ns.vec, sock->ns.vec);
+ return gsock;
+}
+
+void nodeGroupExposeAllSockets(bNodeTree *ngroup)
+{
+ bNode *node;
+ bNodeSocket *sock, *gsock;
+
+ for (node=ngroup->nodes.first; node; node=node->next) {
+ for (sock=node->inputs.first; sock; sock=sock->next) {
+ if (!sock->link && !(sock->flag & SOCK_HIDDEN)) {
+ gsock = nodeGroupAddSocket(ngroup, sock->name, sock->type, SOCK_IN);
+ /* initialize the default socket value */
+ QUATCOPY(gsock->ns.vec, sock->ns.vec);
+ sock->link = nodeAddLink(ngroup, NULL, gsock, node, sock);
+ }
+ }
+ for (sock=node->outputs.first; sock; sock=sock->next) {
+ if (nodeCountSocketLinks(ngroup, sock)==0 && !(sock->flag & SOCK_HIDDEN)) {
+ gsock = nodeGroupAddSocket(ngroup, sock->name, sock->type, SOCK_OUT);
+ /* initialize the default socket value */
+ QUATCOPY(gsock->ns.vec, sock->ns.vec);
+ gsock->link = nodeAddLink(ngroup, node, sock, NULL, gsock);
+ }
+ }
+ }
+}
+
+void nodeGroupRemoveSocket(bNodeTree *ngroup, bNodeSocket *gsock, int in_out)
+{
+ nodeRemSocketLinks(ngroup, gsock);
+ switch (in_out) {
+ case SOCK_IN: BLI_remlink(&ngroup->inputs, gsock); break;
+ case SOCK_OUT: BLI_remlink(&ngroup->outputs, gsock); break;
+ }
}
/* ************** Add stuff ********** */
void nodeAddSockets(bNode *node, bNodeType *ntype)
{
- bNodeSocketType *stype;
-
- if(ntype->inputs) {
- stype= ntype->inputs;
- while(stype->type != -1) {
- node_add_socket_type(&node->inputs, stype);
- stype++;
+ if (node->type==NODE_GROUP) {
+ bNodeTree *ntree= (bNodeTree*)node->id;
+ if (ntree) {
+ bNodeSocket *gsock;
+ for (gsock=ntree->inputs.first; gsock; gsock=gsock->next)
+ node_add_group_socket(&node->inputs, gsock);
+ for (gsock=ntree->outputs.first; gsock; gsock=gsock->next)
+ node_add_group_socket(&node->outputs, gsock);
}
}
- if(ntype->outputs) {
- stype= ntype->outputs;
- while(stype->type != -1) {
- node_add_socket_type(&node->outputs, stype);
- stype++;
+ else {
+ bNodeSocketType *stype;
+
+ if(ntype->inputs) {
+ stype= ntype->inputs;
+ while(stype->type != -1) {
+ node_add_socket_type(&node->inputs, stype);
+ stype++;
+ }
+ }
+ if(ntype->outputs) {
+ stype= ntype->outputs;
+ while(stype->type != -1) {
+ node_add_socket_type(&node->outputs, stype);
+ stype++;
+ }
}
}
}
+
/* Find the first available, non-duplicate name for a given node */
void nodeUniqueName(bNodeTree *ntree, bNode *node)
{
@@ -986,7 +960,7 @@ bNode *nodeAddNodeType(bNodeTree *ntree, int type, bNodeTree *ngroup, ID *id)
ntype= ntype->next;
}
} else
- ntype= node_get_type(ntree, type, ngroup, id);
+ ntype= node_get_type(ntree, type, id);
node= MEM_callocN(sizeof(bNode), "new node");
BLI_addtail(&ntree->nodes, node);
@@ -1050,7 +1024,7 @@ void nodeUpdateType(bNodeTree *ntree, bNode* node, bNodeType *ntype)
/* keep socket listorder identical, for copying links */
/* ntree is the target tree */
-bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node, int internal)
+bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node)
{
bNode *nnode= MEM_callocN(sizeof(bNode), "dupli node");
bNodeSocket *sock, *oldsock;
@@ -1064,15 +1038,11 @@ bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node, int internal)
oldsock= node->inputs.first;
for(sock= nnode->inputs.first; sock; sock= sock->next, oldsock= oldsock->next) {
oldsock->new_sock= sock;
- if(internal)
- sock->own_index= 0;
}
BLI_duplicatelist(&nnode->outputs, &node->outputs);
oldsock= node->outputs.first;
for(sock= nnode->outputs.first; sock; sock= sock->next, oldsock= oldsock->next) {
- if(internal)
- sock->own_index= 0;
sock->stack_index= 0;
sock->ns.data= NULL;
oldsock->new_sock= sock;
@@ -1098,7 +1068,7 @@ bNodeLink *nodeAddLink(bNodeTree *ntree, bNode *fromnode, bNodeSocket *fromsock,
bNodeLink *link= NULL;
int from= 0, to= 0;
- if(fromsock) {
+ if(fromnode) {
/* test valid input */
for(sock= fromnode->outputs.first; sock; sock= sock->next)
if(sock==fromsock)
@@ -1113,7 +1083,7 @@ bNodeLink *nodeAddLink(bNodeTree *ntree, bNode *fromnode, bNodeSocket *fromsock,
from= -1; /* OK but flip */
}
}
- if(tosock) {
+ if(tonode) {
for(sock= tonode->inputs.first; sock; sock= sock->next)
if(sock==tosock)
break;
@@ -1199,9 +1169,8 @@ bNodeTree *ntreeCopyTree(bNodeTree *ntree)
{
bNodeTree *newtree;
bNode *node, *nnode, *last;
- bNodeLink *link, *nlink;
- bNodeSocket *sock;
- int a;
+ bNodeLink *link;
+ bNodeSocket *gsock, *oldgsock;
if(ntree==NULL) return NULL;
@@ -1220,45 +1189,34 @@ bNodeTree *ntreeCopyTree(bNodeTree *ntree)
last = ntree->nodes.last;
for(node= ntree->nodes.first; node; node= node->next) {
node->new_node= NULL;
- nnode= nodeCopyNode(newtree, node, 0); /* sets node->new */
-
- /* make sure we don't copy new nodes again! */
- if (node==last)
- break;
+ nnode= nodeCopyNode(newtree, node); /* sets node->new */
+ if(node==last) break;
}
- /* check for copying links */
- for(link= ntree->links.first; link; link= link->next) {
- if(link->fromnode==NULL || link->tonode==NULL);
- else if(link->fromnode->new_node && link->tonode->new_node) {
- nlink= nodeAddLink(newtree, link->fromnode->new_node, NULL, link->tonode->new_node, NULL);
- /* sockets were copied in order */
- for(a=0, sock= link->fromnode->outputs.first; sock; sock= sock->next, a++) {
- if(sock==link->fromsock)
- break;
- }
- nlink->fromsock= BLI_findlink(&link->fromnode->new_node->outputs, a);
-
- for(a=0, sock= link->tonode->inputs.first; sock; sock= sock->next, a++) {
- if(sock==link->tosock)
- break;
- }
- nlink->tosock= BLI_findlink(&link->tonode->new_node->inputs, a);
- }
+ /* socket definition for group usage */
+ BLI_duplicatelist(&newtree->inputs, &ntree->inputs);
+ for(gsock= newtree->inputs.first, oldgsock= ntree->inputs.first; gsock; gsock=gsock->next, oldgsock=oldgsock->next) {
+ oldgsock->new_sock= gsock;
+ gsock->groupsock = (oldgsock->groupsock ? oldgsock->groupsock->new_sock : NULL);
}
- /* own type definition for group usage */
- if(ntree->owntype) {
- newtree->owntype= MEM_dupallocN(ntree->owntype);
- if(ntree->owntype->inputs)
- newtree->owntype->inputs= MEM_dupallocN(ntree->owntype->inputs);
- if(ntree->owntype->outputs)
- newtree->owntype->outputs= MEM_dupallocN(ntree->owntype->outputs);
+ BLI_duplicatelist(&newtree->outputs, &ntree->outputs);
+ for(gsock= newtree->outputs.first, oldgsock= ntree->outputs.first; gsock; gsock=gsock->next, oldgsock=oldgsock->next) {
+ oldgsock->new_sock= gsock;
+ gsock->groupsock = (oldgsock->groupsock ? oldgsock->groupsock->new_sock : NULL);
+ }
+
+ /* copy links */
+ BLI_duplicatelist(&newtree->links, &ntree->links);
+ for(link= newtree->links.first; link; link= link->next) {
+ link->fromnode = (link->fromnode ? link->fromnode->new_node : NULL);
+ link->fromsock = (link->fromsock ? link->fromsock->new_sock : NULL);
+ link->tonode = (link->tonode ? link->tonode->new_node : NULL);
+ link->tosock = (link->tosock ? link->tosock->new_sock : NULL);
+ /* update the link socket's pointer */
+ if (link->tosock)
+ link->tosock->link = link;
}
-
- /* weird this is required... there seem to be link pointers wrong still? */
- /* anyhoo, doing this solves crashes on copying entire tree (copy scene) and delete nodes */
- ntreeSolveOrder(newtree);
return newtree;
}
@@ -1397,7 +1355,8 @@ void nodeUnlinkNode(bNodeTree *ntree, bNode *node)
if(link->fromnode==node) {
lb= &node->outputs;
- NodeTagChanged(ntree, link->tonode);
+ if (link->tonode)
+ NodeTagChanged(ntree, link->tonode);
}
else if(link->tonode==node)
lb= &node->inputs;
@@ -1467,13 +1426,8 @@ void ntreeFreeTree(bNodeTree *ntree)
nodeFreeNode(ntree, node);
}
- if(ntree->owntype) {
- if(ntree->owntype->inputs)
- MEM_freeN(ntree->owntype->inputs);
- if(ntree->owntype->outputs)
- MEM_freeN(ntree->owntype->outputs);
- MEM_freeN(ntree->owntype);
- }
+ BLI_freelistN(&ntree->inputs);
+ BLI_freelistN(&ntree->outputs);
}
void ntreeFreeCache(bNodeTree *ntree)
@@ -1807,7 +1761,7 @@ static int node_recurs_check(bNode *node, bNode ***nsort, int level)
if(sock->link) {
has_inputlinks= 1;
fromnode= sock->link->fromnode;
- if(fromnode->done==0) {
+ if(fromnode && fromnode->done==0) {
fromnode->level= node_recurs_check(fromnode, nsort, level);
}
}
@@ -1893,6 +1847,9 @@ void ntreeSolveOrder(bNodeTree *ntree)
for(sock= node->inputs.first; sock; sock= sock->next)
sock->link= NULL;
}
+ /* clear group socket links */
+ for(sock= ntree->outputs.first; sock; sock= sock->next)
+ sock->link= NULL;
if(totnode==0)
return;
@@ -1970,33 +1927,40 @@ int NodeTagIDChanged(bNodeTree *ntree, ID *id)
/* ******************* executing ************* */
+/* for a given socket, find the actual stack entry */
+static bNodeStack *get_socket_stack(bNodeStack *stack, bNodeSocket *sock, bNodeStack **gin)
+{
+ switch (sock->stack_type) {
+ case SOCK_STACK_LOCAL:
+ return stack + sock->stack_index;
+ case SOCK_STACK_EXTERN:
+ return (gin ? gin[sock->stack_index] : NULL);
+ case SOCK_STACK_CONST:
+ return sock->stack_ptr;
+ }
+ return NULL;
+}
+
/* see notes at ntreeBeginExecTree */
-static void group_node_get_stack(bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out, bNodeStack **gin, bNodeStack **gout)
+static void node_get_stack(bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out, bNodeStack **gin)
{
bNodeSocket *sock;
/* build pointer stack */
- for(sock= node->inputs.first; sock; sock= sock->next) {
- if(sock->intern) {
- /* yep, intern can have link or is hidden socket */
- if(sock->link)
- *(in++)= stack + sock->link->fromsock->stack_index;
- else
- *(in++)= &sock->ns;
+ if (in) {
+ for(sock= node->inputs.first; sock; sock= sock->next) {
+ *(in++) = get_socket_stack(stack, sock, gin);
}
- else
- *(in++)= gin[sock->stack_index_ext];
}
- for(sock= node->outputs.first; sock; sock= sock->next) {
- if(sock->intern)
- *(out++)= stack + sock->stack_index;
- else
- *(out++)= gout[sock->stack_index_ext];
+ if (out) {
+ for(sock= node->outputs.first; sock; sock= sock->next) {
+ *(out++) = get_socket_stack(stack, sock, gin);
+ }
}
}
-static void node_group_execute(bNodeStack *stack, void *data, bNode *gnode, bNodeStack **in, bNodeStack **out)
+static void node_group_execute(bNodeStack *stack, void *data, bNode *gnode, bNodeStack **in)
{
bNode *node;
bNodeTree *ntree= (bNodeTree *)gnode->id;
@@ -2009,7 +1973,7 @@ static void node_group_execute(bNodeStack *stack, void *data, bNode *gnode, bNod
for(node= ntree->nodes.first; node; node= node->next) {
if(node->typeinfo->execfunc) {
- group_node_get_stack(node, stack, nsin, nsout, in, out);
+ node_get_stack(node, stack, nsin, nsout, in);
/* for groups, only execute outputs for edited group */
if(node->typeinfo->nclass==NODE_CLASS_OUTPUT) {
@@ -2021,19 +1985,27 @@ static void node_group_execute(bNodeStack *stack, void *data, bNode *gnode, bNod
}
}
- /* free internal group output nodes */
- if(ntree->type==NTREE_COMPOSIT) {
- for(node= ntree->nodes.first; node; node= node->next) {
- if(node->typeinfo->execfunc) {
- bNodeSocket *sock;
-
- for(sock= node->outputs.first; sock; sock= sock->next) {
- if(sock->intern) {
- bNodeStack *ns= stack + sock->stack_index;
- if(ns->data) {
- free_compbuf(ns->data);
- ns->data= NULL;
- }
+ /* free internal buffers */
+ if (ntree->type==NTREE_COMPOSIT) {
+ bNodeSocket *sock;
+ bNodeStack *ns;
+ for (sock=ntree->outputs.first; sock; sock=sock->next) {
+ /* use the hasoutput flag to tag external sockets */
+ if (sock->stack_type==SOCK_STACK_LOCAL) {
+ ns= get_socket_stack(stack, sock, in);
+ ns->hasoutput = 0;
+ }
+ }
+ /* now free all stacks that are not used from outside */
+ for (node=ntree->nodes.first; node; node=node->next) {
+ for (sock=node->outputs.first; sock; sock=sock->next) {
+ if (sock->stack_type==SOCK_STACK_LOCAL ) {
+ ns= get_socket_stack(stack, sock, in);
+ if (ns->hasoutput!=0 && ns->data) {
+ free_compbuf(ns->data);
+ ns->data = NULL;
+ /* reset the flag */
+ ns->hasoutput = 1;
}
}
}
@@ -2041,37 +2013,134 @@ static void node_group_execute(bNodeStack *stack, void *data, bNode *gnode, bNod
}
}
+static int set_stack_indexes_default(bNode *node, int index)
+{
+ bNodeSocket *sock;
+
+ for (sock=node->inputs.first; sock; sock=sock->next) {
+ if (sock->link && sock->link->fromsock) {
+ sock->stack_type = sock->link->fromsock->stack_type;
+ sock->stack_index = sock->link->fromsock->stack_index;
+ sock->stack_ptr = sock->link->fromsock->stack_ptr;
+ }
+ else {
+ sock->stack_type = SOCK_STACK_CONST;
+ sock->stack_index = -1;
+ sock->stack_ptr = &sock->ns;
+ }
+ }
+
+ for (sock=node->outputs.first; sock; sock=sock->next) {
+ sock->stack_type = SOCK_STACK_LOCAL;
+ sock->stack_index = index++;
+ sock->stack_ptr = NULL;
+ }
+
+ return index;
+}
+
+static int ntree_begin_exec_tree(bNodeTree *ntree);
+static int set_stack_indexes_group(bNode *node, int index)
+{
+ bNodeTree *ngroup= (bNodeTree*)node->id;
+ bNodeSocket *sock;
+
+ if((ngroup->init & NTREE_TYPE_INIT)==0)
+ ntreeInitTypes(ngroup);
+
+ node->stack_index = index;
+ index += ntree_begin_exec_tree(ngroup);
+
+ for (sock=node->inputs.first; sock; sock=sock->next) {
+ if (sock->link && sock->link->fromsock) {
+ sock->stack_type = sock->link->fromsock->stack_type;
+ sock->stack_index = sock->link->fromsock->stack_index;
+ sock->stack_ptr = sock->link->fromsock->stack_ptr;
+ }
+ else {
+ sock->stack_type = SOCK_STACK_CONST;
+ sock->stack_index = -1;
+ sock->stack_ptr = &sock->ns;
+ }
+ }
+
+ /* identify group node outputs from internal group sockets */
+ for(sock= node->outputs.first; sock; sock= sock->next) {
+ if (sock->groupsock) {
+ bNodeSocket *insock, *gsock = sock->groupsock;
+ switch (gsock->stack_type) {
+ case SOCK_STACK_EXTERN:
+ /* extern stack is resolved for this group node instance */
+ insock= find_group_node_input(node, gsock->link->fromsock);
+ sock->stack_type = insock->stack_type;
+ sock->stack_index = insock->stack_index;
+ sock->stack_ptr = insock->stack_ptr;
+ break;
+ case SOCK_STACK_LOCAL:
+ sock->stack_type = SOCK_STACK_LOCAL;
+ /* local stack index must be offset by group node instance */
+ sock->stack_index = gsock->stack_index + node->stack_index;
+ sock->stack_ptr = NULL;
+ break;
+ case SOCK_STACK_CONST:
+ sock->stack_type = SOCK_STACK_CONST;
+ sock->stack_index = -1;
+ sock->stack_ptr = gsock->stack_ptr;
+ break;
+ }
+ }
+ else {
+ sock->stack_type = SOCK_STACK_LOCAL;
+ sock->stack_index = index++;
+ sock->stack_ptr = NULL;
+ }
+ }
+
+ return index;
+}
+
/* recursively called for groups */
/* we set all trees on own local indices, but put a total counter
in the groups, so each instance of a group has own stack */
static int ntree_begin_exec_tree(bNodeTree *ntree)
{
bNode *node;
- bNodeSocket *sock;
- int index= 0, index_in= 0, index_out= 0;
+ bNodeSocket *gsock;
+ int index= 0, i;
if((ntree->init & NTREE_TYPE_INIT)==0)
ntreeInitTypes(ntree);
+ /* group inputs are numbered 0..totinputs, so external stack can easily be addressed */
+ i = 0;
+ for(gsock=ntree->inputs.first; gsock; gsock = gsock->next) {
+ gsock->stack_type = SOCK_STACK_EXTERN;
+ gsock->stack_index = i++;
+ gsock->stack_ptr = NULL;
+ }
+
/* create indices for stack, check preview */
for(node= ntree->nodes.first; node; node= node->next) {
-
- for(sock= node->inputs.first; sock; sock= sock->next) {
- if(sock->intern==0)
- sock->stack_index_ext= index_in++;
- }
-
- for(sock= node->outputs.first; sock; sock= sock->next) {
- sock->stack_index= index++;
- if(sock->intern==0)
- sock->stack_index_ext= index_out++;
+ /* XXX can this be done by a generic one-for-all function?
+ * otherwise should use node-type callback.
+ */
+ if(node->type==NODE_GROUP)
+ index = set_stack_indexes_group(node, index);
+ else
+ index = set_stack_indexes_default(node, index);
+ }
+
+ /* group outputs */
+ for(gsock=ntree->outputs.first; gsock; gsock = gsock->next) {
+ if (gsock->link && gsock->link->fromsock) {
+ gsock->stack_type = gsock->link->fromsock->stack_type;
+ gsock->stack_index = gsock->link->fromsock->stack_index;
+ gsock->stack_ptr = gsock->link->fromsock->stack_ptr;
}
-
- if(node->type==NODE_GROUP) {
- if(node->id) {
- node->stack_index= index;
- index+= ntree_begin_exec_tree((bNodeTree *)node->id);
- }
+ else {
+ gsock->stack_type = SOCK_STACK_CONST;
+ gsock->stack_index = -1;
+ gsock->stack_ptr = &gsock->ns;
}
}
@@ -2079,7 +2148,7 @@ static int ntree_begin_exec_tree(bNodeTree *ntree)
}
/* copy socket compbufs to stack, initialize usage of curve nodes */
-static void composit_begin_exec(bNodeTree *ntree, int is_group)
+static void composit_begin_exec(bNodeTree *ntree, bNodeStack *stack)
{
bNode *node;
bNodeSocket *sock;
@@ -2089,16 +2158,14 @@ static void composit_begin_exec(bNodeTree *ntree, int is_group)
/* initialize needed for groups */
node->exec= 0;
- if(is_group==0) {
- for(sock= node->outputs.first; sock; sock= sock->next) {
- bNodeStack *ns= ntree->stack + sock->stack_index;
-
- if(sock->ns.data) {
- ns->data= sock->ns.data;
- sock->ns.data= NULL;
- }
+ for(sock= node->outputs.first; sock; sock= sock->next) {
+ bNodeStack *ns= get_socket_stack(stack, sock, NULL);
+ if(ns && sock->ns.data) {
+ ns->data= sock->ns.data;
+ sock->ns.data= NULL;
}
}
+
/* cannot initialize them while using in threads */
if(ELEM4(node->type, CMP_NODE_TIME, CMP_NODE_CURVE_VEC, CMP_NODE_CURVE_RGB, CMP_NODE_HUECORRECT)) {
curvemapping_initialize(node->storage);
@@ -2106,74 +2173,60 @@ static void composit_begin_exec(bNodeTree *ntree, int is_group)
curvemapping_premultiply(node->storage, 0);
}
if(node->type==NODE_GROUP)
- composit_begin_exec((bNodeTree *)node->id, 1);
+ composit_begin_exec((bNodeTree *)node->id, stack + node->stack_index);
}
}
/* copy stack compbufs to sockets */
-static void composit_end_exec(bNodeTree *ntree, int is_group)
+static void composit_end_exec(bNodeTree *ntree, bNodeStack *stack)
{
bNode *node;
bNodeStack *ns;
- int a;
for(node= ntree->nodes.first; node; node= node->next) {
- if(is_group==0) {
- bNodeSocket *sock;
+ bNodeSocket *sock;
- for(sock= node->outputs.first; sock; sock= sock->next) {
- ns= ntree->stack + sock->stack_index;
- if(ns->data) {
- sock->ns.data= ns->data;
- ns->data= NULL;
- }
+ for(sock= node->outputs.first; sock; sock= sock->next) {
+ ns = get_socket_stack(stack, sock, NULL);
+ if(ns && ns->data) {
+ sock->ns.data= ns->data;
+ ns->data= NULL;
}
}
+
if(node->type==CMP_NODE_CURVE_RGB)
curvemapping_premultiply(node->storage, 1);
if(node->type==NODE_GROUP)
- composit_end_exec((bNodeTree *)node->id, 1);
+ composit_end_exec((bNodeTree *)node->id, stack + node->stack_index);
node->need_exec= 0;
}
-
- if(is_group==0) {
- /* internally, group buffers are not stored */
- for(ns= ntree->stack, a=0; a<ntree->stacksize; a++, ns++) {
- if(ns->data) {
- printf("freed leftover buffer from stack\n");
- free_compbuf(ns->data);
- ns->data= NULL;
- }
- }
- }
}
-static void group_tag_used_outputs(bNode *gnode, bNodeStack *stack)
+static void group_tag_used_outputs(bNode *gnode, bNodeStack *stack, bNodeStack **gin)
{
bNodeTree *ntree= (bNodeTree *)gnode->id;
bNode *node;
+ bNodeSocket *sock;
stack+= gnode->stack_index;
for(node= ntree->nodes.first; node; node= node->next) {
if(node->typeinfo->execfunc) {
- bNodeSocket *sock;
-
for(sock= node->inputs.first; sock; sock= sock->next) {
- if(sock->intern) {
- if(sock->link) {
- bNodeStack *ns= stack + sock->link->fromsock->stack_index;
- ns->hasoutput= 1;
- ns->sockettype= sock->link->fromsock->type;
- }
- else
- sock->ns.sockettype= sock->type;
- }
+ bNodeStack *ns = get_socket_stack(stack, sock, gin);
+ ns->hasoutput= 1;
}
}
+
+ /* set stack types (for local stack entries) */
+ for(sock= node->outputs.first; sock; sock= sock->next) {
+ bNodeStack *ns = get_socket_stack(stack, sock, NULL);
+ if (ns)
+ ns->sockettype = sock->type;
+ }
}
}
@@ -2231,6 +2284,8 @@ static void tex_end_exec(bNodeTree *ntree)
void ntreeBeginExecTree(bNodeTree *ntree)
{
+ bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */
+
/* let's make it sure */
if(ntree->init & NTREE_EXEC_INIT)
return;
@@ -2262,13 +2317,16 @@ void ntreeBeginExecTree(bNodeTree *ntree)
node->need_exec= 1;
for(sock= node->inputs.first; sock; sock= sock->next) {
- if(sock->link) {
- ns= ntree->stack + sock->link->fromsock->stack_index;
- ns->hasoutput= 1;
- ns->sockettype= sock->link->fromsock->type;
+ ns = get_socket_stack(ntree->stack, sock, NULL);
+ if (ns) {
+ ns->hasoutput = 1;
+
+ /* sock type is needed to detect rgba or value or vector types */
+ if(sock->link)
+ ns->sockettype= sock->link->fromsock->type;
+ else
+ sock->ns.sockettype= sock->type;
}
- else
- sock->ns.sockettype= sock->type;
if(sock->link) {
bNodeLink *link= sock->link;
@@ -2282,13 +2340,21 @@ void ntreeBeginExecTree(bNodeTree *ntree)
}
}
- if(node->type==NODE_GROUP && node->id)
- group_tag_used_outputs(node, ntree->stack);
+ /* set stack types (for local stack entries) */
+ for(sock= node->outputs.first; sock; sock= sock->next) {
+ ns = get_socket_stack(ntree->stack, sock, NULL);
+ if (ns)
+ ns->sockettype = sock->type;
+ }
+ if(node->type==NODE_GROUP && node->id) {
+ node_get_stack(node, ntree->stack, nsin, NULL, NULL);
+ group_tag_used_outputs(node, ntree->stack, nsin);
+ }
}
if(ntree->type==NTREE_COMPOSIT)
- composit_begin_exec(ntree, 0);
+ composit_begin_exec(ntree, ntree->stack);
}
ntree->init |= NTREE_EXEC_INIT;
@@ -2296,14 +2362,24 @@ void ntreeBeginExecTree(bNodeTree *ntree)
void ntreeEndExecTree(bNodeTree *ntree)
{
+ bNodeStack *ns;
if(ntree->init & NTREE_EXEC_INIT) {
bNodeThreadStack *nts;
int a;
/* another callback candidate! */
- if(ntree->type==NTREE_COMPOSIT)
- composit_end_exec(ntree, 0);
+ if(ntree->type==NTREE_COMPOSIT) {
+ composit_end_exec(ntree, ntree->stack);
+
+ for(ns= ntree->stack, a=0; a<ntree->stacksize; a++, ns++) {
+ if(ns->data) {
+ printf("freed leftover buffer from stack\n");
+ free_compbuf(ns->data);
+ ns->data= NULL;
+ }
+ }
+ }
else if(ntree->type==NTREE_TEXTURE)
tex_end_exec(ntree);
@@ -2327,23 +2403,6 @@ void ntreeEndExecTree(bNodeTree *ntree)
}
}
-static void node_get_stack(bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out)
-{
- bNodeSocket *sock;
-
- /* build pointer stack */
- for(sock= node->inputs.first; sock; sock= sock->next) {
- if(sock->link)
- *(in++)= stack + sock->link->fromsock->stack_index;
- else
- *(in++)= &sock->ns;
- }
-
- for(sock= node->outputs.first; sock; sock= sock->next) {
- *(out++)= stack + sock->stack_index;
- }
-}
-
/* nodes are presorted, so exec is in order of list */
void ntreeExecTree(bNodeTree *ntree, void *callerdata, int thread)
{
@@ -2356,7 +2415,7 @@ void ntreeExecTree(bNodeTree *ntree, void *callerdata, int thread)
/* only when initialized */
if((ntree->init & NTREE_EXEC_INIT)==0)
ntreeBeginExecTree(ntree);
-
+
/* composite does 1 node per thread, so no multiple stacks needed */
if(ntree->type==NTREE_COMPOSIT) {
stack= ntree->stack;
@@ -2369,12 +2428,12 @@ void ntreeExecTree(bNodeTree *ntree, void *callerdata, int thread)
for(node= ntree->nodes.first; node; node= node->next) {
if(node->need_exec) {
if(node->typeinfo->execfunc) {
- node_get_stack(node, stack, nsin, nsout);
+ node_get_stack(node, stack, nsin, nsout, NULL);
node->typeinfo->execfunc(callerdata, node, nsin, nsout);
}
else if(node->type==NODE_GROUP && node->id) {
- node_get_stack(node, stack, nsin, nsout);
- node_group_execute(stack, callerdata, node, nsin, nsout);
+ node_get_stack(node, stack, nsin, NULL, NULL);
+ node_group_execute(stack, callerdata, node, nsin);
}
}
}
@@ -2420,7 +2479,7 @@ static void *exec_composite_node(void *node_v)
bNode *node= node_v;
ThreadData *thd= (ThreadData *)node->threaddata;
- node_get_stack(node, thd->stack, nsin, nsout);
+ node_get_stack(node, thd->stack, nsin, nsout, NULL);
if((node->flag & NODE_MUTED) && (!node_only_value(node))) {
/* viewers we execute, for feedback to user */
@@ -2433,7 +2492,7 @@ static void *exec_composite_node(void *node_v)
node->typeinfo->execfunc(thd->rd, node, nsin, nsout);
}
else if(node->type==NODE_GROUP && node->id) {
- node_group_execute(thd->stack, thd->rd, node, nsin, nsout);
+ node_group_execute(thd->stack, thd->rd, node, nsin);
}
node->exec |= NODE_READY;
@@ -2461,7 +2520,7 @@ static int setExecutableNodes(bNodeTree *ntree, ThreadData *thd)
for(node= ntree->nodes.first; node; node= node->next) {
int a;
- node_get_stack(node, thd->stack, nsin, nsout);
+ node_get_stack(node, thd->stack, nsin, nsout, NULL);
/* test the outputs */
/* skip value-only nodes (should be in type!) */
@@ -2526,7 +2585,7 @@ static int setExecutableNodes(bNodeTree *ntree, ThreadData *thd)
for(node= ntree->nodes.first; node; node= node->next) {
if(node->need_exec==0 && node_only_value(node)) {
if(node->typeinfo->execfunc) {
- node_get_stack(node, thd->stack, nsin, nsout);
+ node_get_stack(node, thd->stack, nsin, nsout, NULL);
node->typeinfo->execfunc(thd->rd, node, nsin, nsout);
}
}
@@ -2564,8 +2623,8 @@ static void freeExecutableNode(bNodeTree *ntree)
for(node= ntree->nodes.first; node; node= node->next) {
if(node->exec & NODE_FREEBUFS) {
for(sock= node->outputs.first; sock; sock= sock->next) {
- bNodeStack *ns= ntree->stack + sock->stack_index;
- if(ns->data) {
+ bNodeStack *ns= get_socket_stack(ntree->stack, sock, NULL);
+ if(ns && ns->data) {
free_compbuf(ns->data);
ns->data= NULL;
// printf("freed buf node %s \n", node->name);
@@ -2585,7 +2644,7 @@ static bNode *getExecutableNode(bNodeTree *ntree)
/* input sockets should be ready */
for(sock= node->inputs.first; sock; sock= sock->next) {
- if(sock->link)
+ if(sock->link && sock->link->fromnode)
if((sock->link->fromnode->exec & NODE_READY)==0)
break;
}
@@ -2656,7 +2715,6 @@ void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview)
if(BLI_available_threads(&threads)) {
node= getExecutableNode(ntree);
if(node) {
-
if(ntree->progress && totnode)
ntree->progress(ntree->prh, (1.0 - curnode/(float)totnode));
if(ntree->stats_draw) {
@@ -2923,7 +2981,7 @@ static void data_from_gpu_stack(ListBase *sockets, bNodeStack **ns, GPUNodeStack
}
}
-static void gpu_node_group_execute(bNodeStack *stack, GPUMaterial *mat, bNode *gnode, bNodeStack **in, bNodeStack **out)
+static void gpu_node_group_execute(bNodeStack *stack, GPUMaterial *mat, bNode *gnode, bNodeStack **in)
{
bNode *node;
bNodeTree *ntree= (bNodeTree *)gnode->id;
@@ -2938,7 +2996,7 @@ static void gpu_node_group_execute(bNodeStack *stack, GPUMaterial *mat, bNode *g
for(node= ntree->nodes.first; node; node= node->next) {
if(node->typeinfo->gpufunc) {
- group_node_get_stack(node, stack, nsin, nsout, in, out);
+ node_get_stack(node, stack, nsin, nsout, in);
doit = 0;
@@ -2976,15 +3034,15 @@ void ntreeGPUMaterialNodes(bNodeTree *ntree, GPUMaterial *mat)
for(node= ntree->nodes.first; node; node= node->next) {
if(node->typeinfo->gpufunc) {
- node_get_stack(node, stack, nsin, nsout);
+ node_get_stack(node, stack, nsin, nsout, NULL);
gpu_from_node_stack(&node->inputs, nsin, gpuin);
gpu_from_node_stack(&node->outputs, nsout, gpuout);
if(node->typeinfo->gpufunc(mat, node, gpuin, gpuout))
data_from_gpu_stack(&node->outputs, nsout, gpuout);
}
else if(node->type==NODE_GROUP && node->id) {
- node_get_stack(node, stack, nsin, nsout);
- gpu_node_group_execute(stack, mat, node, nsin, nsout);
+ node_get_stack(node, stack, nsin, nsout, NULL);
+ gpu_node_group_execute(stack, mat, node, nsin);
}
}
@@ -3413,7 +3471,7 @@ static void registerShaderNodes(ListBase *ntypelist)
register_node_type_sh_value(ntypelist);
register_node_type_sh_rgb(ntypelist);
register_node_type_sh_texture(ntypelist);
- register_node_type_sh_dynamic(ntypelist);
+// register_node_type_sh_dynamic(ntypelist);
register_node_type_sh_invert(ntypelist);
register_node_type_sh_seprgb(ntypelist);
register_node_type_sh_combrgb(ntypelist);
diff --git a/source/blender/blenkernel/intern/packedFile.c b/source/blender/blenkernel/intern/packedFile.c
index 1fc0a2259fb..981b3b31e71 100644
--- a/source/blender/blenkernel/intern/packedFile.c
+++ b/source/blender/blenkernel/intern/packedFile.c
@@ -1,4 +1,4 @@
-/**
+/*
* blenkernel/packedFile.c - (cleaned up mar-01 nzc)
*
* $Id$
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c
index 853338d0722..e53888127f2 100644
--- a/source/blender/blenkernel/intern/paint.c
+++ b/source/blender/blenkernel/intern/paint.c
@@ -1,4 +1,6 @@
/*
+ * $Id$
+ *
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -23,7 +25,7 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- */
+ */
#include "DNA_object_types.h"
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c
index c1a6558aea3..fd792168c6b 100644
--- a/source/blender/blenkernel/intern/particle_system.c
+++ b/source/blender/blenkernel/intern/particle_system.c
@@ -2286,6 +2286,10 @@ static void particle_fluidsim(ParticleSystem *psys, int own_psys, ParticleData *
/* pressure and near pressure */
for(n=own_psys?1:0; n<neighbours; n++) {
+ /* disregard particles at the exact same location */
+ if(ptn[n].dist < FLT_EPSILON)
+ continue;
+
sub_v3_v3(ptn[n].co, pa->prev_state.co);
mul_v3_fl(ptn[n].co, 1.f/ptn[n].dist);
q = ptn[n].dist/h;
@@ -2305,6 +2309,10 @@ static void particle_fluidsim(ParticleSystem *psys, int own_psys, ParticleData *
/* main calculations */
for(n=own_psys?1:0; n<neighbours; n++) {
+ /* disregard particles at the exact same location */
+ if(ptn[n].dist < FLT_EPSILON)
+ continue;
+
npa = psys->particles + ptn[n].index;
rij = ptn[n].dist;
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c
index b7ece436ee2..6ea14606660 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -1,4 +1,5 @@
-/**
+/*
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -19,7 +20,7 @@
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
-* Contributor(s): Campbell Barton <ideasman42@gmail.com>
+ * Contributor(s): Campbell Barton <ideasman42@gmail.com>
*
* ***** END GPL LICENSE BLOCK *****
*/
diff --git a/source/blender/blenkernel/intern/report.c b/source/blender/blenkernel/intern/report.c
index 044e1350be1..fa2e867d483 100644
--- a/source/blender/blenkernel/intern/report.c
+++ b/source/blender/blenkernel/intern/report.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/sca.c b/source/blender/blenkernel/intern/sca.c
index c8ef834fbbb..c004e254572 100644
--- a/source/blender/blenkernel/intern/sca.c
+++ b/source/blender/blenkernel/intern/sca.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/seqcache.c b/source/blender/blenkernel/intern/seqcache.c
index 1c40ef020be..df81bcd1593 100644
--- a/source/blender/blenkernel/intern/seqcache.c
+++ b/source/blender/blenkernel/intern/seqcache.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c
index da90ce4a715..7ddd1fbd6bb 100644
--- a/source/blender/blenkernel/intern/seqeffects.c
+++ b/source/blender/blenkernel/intern/seqeffects.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index 2785878fb08..83e28db771a 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -193,7 +193,7 @@ void seq_free_sequence(Scene *scene, Sequence *seq)
if (ed->act_seq==seq)
ed->act_seq= NULL;
- if(seq->scene_sound)
+ if(seq->scene_sound && ELEM(seq->type, SEQ_SOUND, SEQ_SCENE))
sound_remove_scene_sound(scene, seq->scene_sound);
seq_free_animdata(scene, seq);
@@ -3399,6 +3399,7 @@ Sequence *alloc_sequence(ListBase *lb, int cfra, int machine)
seq->mul= 1.0;
seq->blend_opacity = 100.0;
seq->volume = 1.0f;
+ seq->scene_sound = NULL;
return seq;
}
diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c
index a75bc2164c3..53fefa685b9 100644
--- a/source/blender/blenkernel/intern/shrinkwrap.c
+++ b/source/blender/blenkernel/intern/shrinkwrap.c
@@ -1,5 +1,5 @@
-/**
- * shrinkwrap.c
+/*
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/blenkernel/intern/sketch.c b/source/blender/blenkernel/intern/sketch.c
index 1d5f9b4c463..8917d2946bd 100644
--- a/source/blender/blenkernel/intern/sketch.c
+++ b/source/blender/blenkernel/intern/sketch.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* $Id$
*
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 1d80e989da4..b2d3ddf2e52 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -1,4 +1,4 @@
-/**
+/*
* smoke.c
*
* $Id$
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index 0889f490e79..5697c29db5d 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -2251,8 +2251,16 @@ static struct PBVH *ccgDM_getPBVH(Object *ob, DerivedMesh *dm)
if(!ob->sculpt)
return NULL;
- if(ob->sculpt->pbvh)
+ if(ob->sculpt->pbvh) {
+ /* pbvh's grids, gridadj and gridfaces points to data inside ccgdm
+ but this can be freed on ccgdm release, this updates the pointers
+ when the ccgdm gets remade, the assumption is that the topology
+ does not change. */
+ ccgdm_create_grids(dm);
+ BLI_pbvh_grids_update(ob->sculpt->pbvh, ccgdm->gridData, ccgdm->gridAdjacency, (void**)ccgdm->gridFaces);
+
ccgdm->pbvh = ob->sculpt->pbvh;
+ }
if(ccgdm->pbvh)
return ccgdm->pbvh;
diff --git a/source/blender/blenkernel/intern/suggestions.c b/source/blender/blenkernel/intern/suggestions.c
index 7ec6d84d285..052b545cfb4 100644
--- a/source/blender/blenkernel/intern/suggestions.c
+++ b/source/blender/blenkernel/intern/suggestions.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenkernel/intern/unit.c b/source/blender/blenkernel/intern/unit.c
index c3a34e1942f..b071f2c9da5 100644
--- a/source/blender/blenkernel/intern/unit.c
+++ b/source/blender/blenkernel/intern/unit.c
@@ -1,4 +1,5 @@
-/**
+/*
+ * $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/blenkernel/intern/writeavi.c b/source/blender/blenkernel/intern/writeavi.c
index e946ce06aa2..1c1febf2609 100644
--- a/source/blender/blenkernel/intern/writeavi.c
+++ b/source/blender/blenkernel/intern/writeavi.c
@@ -1,4 +1,4 @@
-/**
+/*
* Functions for writing avi-format files.
* Added interface for generic movie support (ton)
*
diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c
index bb00e6de5ce..f3b759113ff 100644
--- a/source/blender/blenkernel/intern/writeffmpeg.c
+++ b/source/blender/blenkernel/intern/writeffmpeg.c
@@ -1,4 +1,6 @@
/*
+ * $Id$
+ *
* ffmpeg-write support
*
* Partial Copyright (c) 2006 Peter Schlaile
diff --git a/source/blender/blenkernel/nla_private.h b/source/blender/blenkernel/nla_private.h
index 1dabc5a0476..dae9c4f6e41 100644
--- a/source/blender/blenkernel/nla_private.h
+++ b/source/blender/blenkernel/nla_private.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/BLI_path_util.h b/source/blender/blenlib/BLI_path_util.h
index b3d657b7323..b3220937e19 100644
--- a/source/blender/blenlib/BLI_path_util.h
+++ b/source/blender/blenlib/BLI_path_util.h
@@ -40,7 +40,7 @@ extern "C" {
struct ListBase;
struct direntry;
-char *BLI_getDefaultDocumentFolder(void);
+const char *BLI_getDefaultDocumentFolder(void);
char *BLI_get_folder(int folder_id, const char *subfolder);
char *BLI_get_folder_create(int folder_id, const char *subfolder);
diff --git a/source/blender/blenlib/BLI_pbvh.h b/source/blender/blenlib/BLI_pbvh.h
index 4191559771d..bde6bc3ced4 100644
--- a/source/blender/blenlib/BLI_pbvh.h
+++ b/source/blender/blenlib/BLI_pbvh.h
@@ -121,6 +121,8 @@ float BLI_pbvh_node_get_tmin(PBVHNode* node);
void BLI_pbvh_update(PBVH *bvh, int flags, float (*face_nors)[3]);
void BLI_pbvh_redraw_BB(PBVH *bvh, float bb_min[3], float bb_max[3]);
void BLI_pbvh_get_grid_updates(PBVH *bvh, int clear, void ***gridfaces, int *totface);
+void BLI_pbvh_grids_update(PBVH *bvh, struct DMGridData **grids,
+ struct DMGridAdjacency *gridadj, void **gridfaces);;
/* vertex deformer */
float (*BLI_pbvh_get_vertCos(struct PBVH *pbvh))[3];
diff --git a/source/blender/blenlib/CMakeLists.txt b/source/blender/blenlib/CMakeLists.txt
index 4006b879526..d78fbdf393e 100644
--- a/source/blender/blenlib/CMakeLists.txt
+++ b/source/blender/blenlib/CMakeLists.txt
@@ -28,6 +28,7 @@ set(INC
.
../makesdna
../blenkernel
+ ../blenloader
../gpu
../../../intern/ghost
../../../intern/guardedalloc
@@ -133,7 +134,8 @@ set(SRC
intern/dynamiclist.h
)
-if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+if(WITH_BINRELOC)
+ add_definitions(-DWITH_BINRELOC)
list(APPEND INC "${BINRELOC_INC}")
endif()
diff --git a/source/blender/blenlib/PIL_dynlib.h b/source/blender/blenlib/PIL_dynlib.h
index c94b6af690b..87eda213fd8 100644
--- a/source/blender/blenlib/PIL_dynlib.h
+++ b/source/blender/blenlib/PIL_dynlib.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/PIL_time.h b/source/blender/blenlib/PIL_time.h
index 2d5948c4217..6cb4cf6ffcf 100644
--- a/source/blender/blenlib/PIL_time.h
+++ b/source/blender/blenlib/PIL_time.h
@@ -1,4 +1,4 @@
-/**
+/*
* @file PIL_time.h
*
* Platform independant time functions.
diff --git a/source/blender/blenlib/SConscript b/source/blender/blenlib/SConscript
index 78aecf9936b..00caf8cd01d 100644
--- a/source/blender/blenlib/SConscript
+++ b/source/blender/blenlib/SConscript
@@ -4,14 +4,15 @@ Import ('env')
sources = env.Glob('intern/*.c')
cflags=''
-incs = '. ../makesdna ../blenkernel #/intern/guardedalloc #/intern/ghost ../editors/include ../gpu'
+incs = '. ../makesdna ../blenkernel #/intern/guardedalloc #/intern/ghost ../editors/include ../gpu ../blenloader'
incs += ' ' + env['BF_FREETYPE_INC']
incs += ' ' + env['BF_ZLIB_INC']
-defs = ''
+defs = []
-if env['OURPLATFORM'] == 'linux2':
+if env['WITH_BF_BINRELOC']:
cflags='-pthread'
incs += ' ../../../extern/binreloc/include'
+ defs.append('WITH_BINRELOC')
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
incs += ' ' + env['BF_PTHREADS_INC']
diff --git a/source/blender/blenlib/intern/BLI_args.c b/source/blender/blenlib/intern/BLI_args.c
index 5237c66435b..4c059c62475 100644
--- a/source/blender/blenlib/intern/BLI_args.c
+++ b/source/blender/blenlib/intern/BLI_args.c
@@ -1,4 +1,4 @@
-/**
+/*
* A general argument parsing module
*
* $Id$
diff --git a/source/blender/blenlib/intern/BLI_callbacks.h b/source/blender/blenlib/intern/BLI_callbacks.h
index 56e6cdd428b..71f68d33f2f 100644
--- a/source/blender/blenlib/intern/BLI_callbacks.h
+++ b/source/blender/blenlib/intern/BLI_callbacks.h
@@ -1,4 +1,4 @@
-/**
+/*
* blenlib/BLI_editVert.h mar 2001 Nzc
*
* These callbacks are needed in the lib
diff --git a/source/blender/blenlib/intern/BLI_dynstr.c b/source/blender/blenlib/intern/BLI_dynstr.c
index 1dcc06d6665..dcda7daacb3 100644
--- a/source/blender/blenlib/intern/BLI_dynstr.c
+++ b/source/blender/blenlib/intern/BLI_dynstr.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/BLI_ghash.c b/source/blender/blenlib/intern/BLI_ghash.c
index 541b9ea0ae8..df78c9fb7d2 100644
--- a/source/blender/blenlib/intern/BLI_ghash.c
+++ b/source/blender/blenlib/intern/BLI_ghash.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/BLI_heap.c b/source/blender/blenlib/intern/BLI_heap.c
index 7d77e85bfe1..027d3da6499 100644
--- a/source/blender/blenlib/intern/BLI_heap.c
+++ b/source/blender/blenlib/intern/BLI_heap.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c
index bdd81a8ad03..01f2ab4436c 100644
--- a/source/blender/blenlib/intern/BLI_kdopbvh.c
+++ b/source/blender/blenlib/intern/BLI_kdopbvh.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/blenlib/intern/BLI_kdtree.c b/source/blender/blenlib/intern/BLI_kdtree.c
index 8902c580493..24fe4c081d9 100644
--- a/source/blender/blenlib/intern/BLI_kdtree.c
+++ b/source/blender/blenlib/intern/BLI_kdtree.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/BLI_linklist.c b/source/blender/blenlib/intern/BLI_linklist.c
index c903e66057e..deb4ee79157 100644
--- a/source/blender/blenlib/intern/BLI_linklist.c
+++ b/source/blender/blenlib/intern/BLI_linklist.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/BLI_memarena.c b/source/blender/blenlib/intern/BLI_memarena.c
index de2a73e065f..52638158b18 100644
--- a/source/blender/blenlib/intern/BLI_memarena.c
+++ b/source/blender/blenlib/intern/BLI_memarena.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/BLI_mempool.c b/source/blender/blenlib/intern/BLI_mempool.c
index 235cedb6fed..449195fefd1 100644
--- a/source/blender/blenlib/intern/BLI_mempool.c
+++ b/source/blender/blenlib/intern/BLI_mempool.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/blenlib/intern/DLRB_tree.c b/source/blender/blenlib/intern/DLRB_tree.c
index 69c9cc7e522..fa2edac0897 100644
--- a/source/blender/blenlib/intern/DLRB_tree.c
+++ b/source/blender/blenlib/intern/DLRB_tree.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/bpath.c b/source/blender/blenlib/intern/bpath.c
index 473a6172047..131ac1b8182 100644
--- a/source/blender/blenlib/intern/bpath.c
+++ b/source/blender/blenlib/intern/bpath.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/blenlib/intern/cpu.c b/source/blender/blenlib/intern/cpu.c
index 65e6b34488c..644b4e72025 100644
--- a/source/blender/blenlib/intern/cpu.c
+++ b/source/blender/blenlib/intern/cpu.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* $Id$
*
diff --git a/source/blender/blenlib/intern/dynamiclist.h b/source/blender/blenlib/intern/dynamiclist.h
index 3bf6e54a79b..03ccca576ff 100644
--- a/source/blender/blenlib/intern/dynamiclist.h
+++ b/source/blender/blenlib/intern/dynamiclist.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/dynlib.c b/source/blender/blenlib/intern/dynlib.c
index 76a8a571480..eb769d19210 100644
--- a/source/blender/blenlib/intern/dynlib.c
+++ b/source/blender/blenlib/intern/dynlib.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/edgehash.c b/source/blender/blenlib/intern/edgehash.c
index 4f93abf8357..1ce3f179558 100644
--- a/source/blender/blenlib/intern/edgehash.c
+++ b/source/blender/blenlib/intern/edgehash.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/freetypefont.c b/source/blender/blenlib/intern/freetypefont.c
index b34dbb2d5fd..1b569cf794f 100644
--- a/source/blender/blenlib/intern/freetypefont.c
+++ b/source/blender/blenlib/intern/freetypefont.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/graph.c b/source/blender/blenlib/intern/graph.c
index 0137826df64..050effdf5b4 100644
--- a/source/blender/blenlib/intern/graph.c
+++ b/source/blender/blenlib/intern/graph.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/gsqueue.c b/source/blender/blenlib/intern/gsqueue.c
index a8b40e187d8..0936759b680 100644
--- a/source/blender/blenlib/intern/gsqueue.c
+++ b/source/blender/blenlib/intern/gsqueue.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/jitter.c b/source/blender/blenlib/intern/jitter.c
index 2454c4b1444..f4305d45735 100644
--- a/source/blender/blenlib/intern/jitter.c
+++ b/source/blender/blenlib/intern/jitter.c
@@ -1,4 +1,4 @@
-/**
+/*
* Jitter offset table
*
* $Id$
diff --git a/source/blender/blenlib/intern/math_base.c b/source/blender/blenlib/intern/math_base.c
index df8749c9ddd..4f0d4bbeba0 100644
--- a/source/blender/blenlib/intern/math_base.c
+++ b/source/blender/blenlib/intern/math_base.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/math_base_inline.c b/source/blender/blenlib/intern/math_base_inline.c
index e54b84d7aaf..099c14a6556 100644
--- a/source/blender/blenlib/intern/math_base_inline.c
+++ b/source/blender/blenlib/intern/math_base_inline.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/math_color.c b/source/blender/blenlib/intern/math_color.c
index 0408d814d81..2f2e8d6fc61 100644
--- a/source/blender/blenlib/intern/math_color.c
+++ b/source/blender/blenlib/intern/math_color.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c
index bb5b3a21770..8e0fea54e68 100644
--- a/source/blender/blenlib/intern/math_geom.c
+++ b/source/blender/blenlib/intern/math_geom.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/math_geom_inline.c b/source/blender/blenlib/intern/math_geom_inline.c
index c583990fef7..11310f25075 100644
--- a/source/blender/blenlib/intern/math_geom_inline.c
+++ b/source/blender/blenlib/intern/math_geom_inline.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/math_rotation.c b/source/blender/blenlib/intern/math_rotation.c
index 0a92218b967..1160ec9fc3a 100644
--- a/source/blender/blenlib/intern/math_rotation.c
+++ b/source/blender/blenlib/intern/math_rotation.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/math_vector.c b/source/blender/blenlib/intern/math_vector.c
index bcad7894e86..6c4000c6142 100644
--- a/source/blender/blenlib/intern/math_vector.c
+++ b/source/blender/blenlib/intern/math_vector.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/math_vector_inline.c b/source/blender/blenlib/intern/math_vector_inline.c
index 2f808e5d74e..77c2c9b74d2 100644
--- a/source/blender/blenlib/intern/math_vector_inline.c
+++ b/source/blender/blenlib/intern/math_vector_inline.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c
index ec137d21033..97712639a6c 100644
--- a/source/blender/blenlib/intern/path_util.c
+++ b/source/blender/blenlib/intern/path_util.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -71,7 +71,7 @@
#else /* non windows */
-#ifdef __linux__
+#ifdef WITH_BINRELOC
#include "binreloc.h"
#endif
@@ -812,12 +812,12 @@ void BLI_getlastdir(const char* dir, char *last, int maxlen)
/* This is now only used to really get the user's default document folder */
/* On Windows I chose the 'Users/<MyUserName>/Documents' since it's used
as default location to save documents */
-char *BLI_getDefaultDocumentFolder(void) {
+const char *BLI_getDefaultDocumentFolder(void) {
#if !defined(WIN32)
return getenv("HOME");
#else /* Windows */
- char * ret;
+ const char * ret;
static char documentfolder[MAXPATHLEN];
HRESULT hResult;
@@ -883,7 +883,7 @@ static int test_path(char *targetpath, const char *path_base, const char *path_s
static int test_env_path(char *path, const char *envvar)
{
- char *env = envvar?getenv(envvar):NULL;
+ const char *env = envvar?getenv(envvar):NULL;
if (!env) return 0;
if (BLI_is_dir(env)) {
@@ -1617,7 +1617,7 @@ static int add_win32_extension(char *name)
#ifdef _WIN32
char filename[FILE_MAXDIR+FILE_MAXFILE];
char ext[FILE_MAXDIR+FILE_MAXFILE];
- char *extensions = getenv("PATHEXT");
+ const char *extensions = getenv("PATHEXT");
if (extensions) {
char *temp;
do {
@@ -1652,7 +1652,7 @@ static int add_win32_extension(char *name)
void BLI_where_am_i(char *fullname, const int maxlen, const char *name)
{
char filename[FILE_MAXDIR+FILE_MAXFILE];
- char *path = NULL, *temp;
+ const char *path = NULL, *temp;
#ifdef _WIN32
const char *separator = ";";
@@ -1661,12 +1661,12 @@ void BLI_where_am_i(char *fullname, const int maxlen, const char *name)
#endif
-#ifdef __linux__
+#ifdef WITH_BINRELOC
/* linux uses binreloc since argv[0] is not relyable, call br_init( NULL ) first */
path = br_find_exe( NULL );
if (path) {
BLI_strncpy(fullname, path, maxlen);
- free(path);
+ free((void *)path);
return;
}
#endif
@@ -1749,7 +1749,7 @@ void BLI_where_is_temp(char *fullname, const int maxlen, int usertemp)
#ifdef WIN32
if (fullname[0] == '\0') {
- char *tmp = getenv("TEMP"); /* Windows */
+ const char *tmp = getenv("TEMP"); /* Windows */
if (tmp && BLI_is_dir(tmp)) {
BLI_strncpy(fullname, tmp, maxlen);
}
@@ -1757,14 +1757,14 @@ void BLI_where_is_temp(char *fullname, const int maxlen, int usertemp)
#else
/* Other OS's - Try TMP and TMPDIR */
if (fullname[0] == '\0') {
- char *tmp = getenv("TMP");
+ const char *tmp = getenv("TMP");
if (tmp && BLI_is_dir(tmp)) {
BLI_strncpy(fullname, tmp, maxlen);
}
}
if (fullname[0] == '\0') {
- char *tmp = getenv("TMPDIR");
+ const char *tmp = getenv("TMPDIR");
if (tmp && BLI_is_dir(tmp)) {
BLI_strncpy(fullname, tmp, maxlen);
}
diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c
index 3c7300f2588..cc62742969e 100644
--- a/source/blender/blenlib/intern/pbvh.c
+++ b/source/blender/blenlib/intern/pbvh.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -59,10 +59,12 @@ static void BLI_bitmap_set(BLI_bitmap b, int index)
b[index >> 3] |= (1 << (index & 7));
}
+#if 0 /* UNUSED */
static void BLI_bitmap_clear(BLI_bitmap b, int index)
{
b[index >> 3] &= ~(1 << (index & 7));
}
+#endif
/* Axis-aligned bounding box */
typedef struct {
@@ -1475,6 +1477,13 @@ void BLI_pbvh_draw(PBVH *bvh, float (*planes)[4], float (*face_nors)[3], int smo
}
}
+void BLI_pbvh_grids_update(PBVH *bvh, DMGridData **grids, DMGridAdjacency *gridadj, void **gridfaces)
+{
+ bvh->grids= grids;
+ bvh->gridadj= gridadj;
+ bvh->gridfaces= gridfaces;
+}
+
float (*BLI_pbvh_get_vertCos(PBVH *pbvh))[3]
{
int a;
diff --git a/source/blender/blenlib/intern/rand.c b/source/blender/blenlib/intern/rand.c
index 7c14cfd3426..8afb9bec3dd 100644
--- a/source/blender/blenlib/intern/rand.c
+++ b/source/blender/blenlib/intern/rand.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/scanfill.c b/source/blender/blenlib/intern/scanfill.c
index 2fa3023be51..af7795030a0 100644
--- a/source/blender/blenlib/intern/scanfill.c
+++ b/source/blender/blenlib/intern/scanfill.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/storage.c b/source/blender/blenlib/intern/storage.c
index c2605a15ad8..b7ac571f856 100644
--- a/source/blender/blenlib/intern/storage.c
+++ b/source/blender/blenlib/intern/storage.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -71,10 +71,6 @@
#include <pwd.h>
#endif
-#if !defined(__FreeBSD__) && !defined(__APPLE__)
-#include <malloc.h>
-#endif
-
#ifdef WIN32
#include <io.h>
#include <direct.h>
diff --git a/source/blender/blenlib/intern/threads.c b/source/blender/blenlib/intern/threads.c
index 3d06f157780..f57f6f969ae 100644
--- a/source/blender/blenlib/intern/threads.c
+++ b/source/blender/blenlib/intern/threads.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* $Id$
*
diff --git a/source/blender/blenlib/intern/time.c b/source/blender/blenlib/intern/time.c
index c0554217f68..a14f73968bf 100644
--- a/source/blender/blenlib/intern/time.c
+++ b/source/blender/blenlib/intern/time.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/uvproject.c b/source/blender/blenlib/intern/uvproject.c
index 5b1cd1dc097..81fe6b26ba4 100644
--- a/source/blender/blenlib/intern/uvproject.c
+++ b/source/blender/blenlib/intern/uvproject.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenlib/intern/voxel.c b/source/blender/blenlib/intern/voxel.c
index 72a9c7d98ec..966bf754d69 100644
--- a/source/blender/blenlib/intern/voxel.c
+++ b/source/blender/blenlib/intern/voxel.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/blenlib/intern/winstuff.c b/source/blender/blenlib/intern/winstuff.c
index c7ec34d69a3..71eac3c86c4 100644
--- a/source/blender/blenlib/intern/winstuff.c
+++ b/source/blender/blenlib/intern/winstuff.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenloader/BLO_soundfile.h b/source/blender/blenloader/BLO_soundfile.h
index 60b05535cad..ae6b4138e03 100644
--- a/source/blender/blenloader/BLO_soundfile.h
+++ b/source/blender/blenloader/BLO_soundfile.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenloader/BLO_sys_types.h b/source/blender/blenloader/BLO_sys_types.h
index 956ed513852..b230b0e5624 100644
--- a/source/blender/blenloader/BLO_sys_types.h
+++ b/source/blender/blenloader/BLO_sys_types.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenloader/intern/readblenentry.c b/source/blender/blenloader/intern/readblenentry.c
index bc7f674d6ba..834d36c924f 100644
--- a/source/blender/blenloader/intern/readblenentry.c
+++ b/source/blender/blenloader/intern/readblenentry.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 542bfcdcc74..1a15aee4dc0 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -2029,6 +2029,55 @@ static void lib_link_nodetree(FileData *fd, Main *main)
}
}
+/* updates group node socket own_index so that
+ * external links to/from the group node are preserved.
+ */
+static void lib_node_do_versions_group(bNode *gnode)
+{
+ bNodeTree *ngroup= (bNodeTree*)gnode->id;
+ bNode *intnode;
+ bNodeSocket *sock, *gsock, *intsock;
+ int found;
+
+ for (sock=gnode->outputs.first; sock; sock=sock->next) {
+ int old_index = sock->to_index;
+ for (gsock=ngroup->outputs.first; gsock; gsock=gsock->next) {
+ if (gsock->link && gsock->link->fromsock->own_index == old_index) {
+ sock->own_index = gsock->own_index;
+ break;
+ }
+ }
+ }
+ for (sock=gnode->inputs.first; sock; sock=sock->next) {
+ int old_index = sock->to_index;
+ /* can't use break in double loop */
+ found = 0;
+ for (intnode=ngroup->nodes.first; intnode && !found; intnode=intnode->next) {
+ for (intsock=intnode->inputs.first; intsock; intsock=intsock->next) {
+ if (intsock->own_index == old_index && intsock->link) {
+ sock->own_index = intsock->link->fromsock->own_index;
+ found = 1;
+ break;
+ }
+ }
+ }
+ }
+}
+
+/* updates external links for all group nodes in a tree */
+static void lib_nodetree_do_versions_group(bNodeTree *ntree)
+{
+ bNode *node;
+
+ for (node=ntree->nodes.first; node; node=node->next) {
+ if (node->type==NODE_GROUP) {
+ bNodeTree *ngroup= (bNodeTree*)node->id;
+ if (ngroup->flag & NTREE_DO_VERSIONS)
+ lib_node_do_versions_group(node);
+ }
+ }
+}
+
/* verify types for nodes and groups, all data has to be read */
/* open = 0: appending/linking, open = 1: open new file (need to clean out dynamic
* typedefs*/
@@ -2047,10 +2096,43 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open))
/* now create the own typeinfo structs an verify nodes */
/* here we still assume no groups in groups */
for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) {
- ntreeVerifyTypes(ntree); /* internal nodes, no groups! */
- ntreeMakeOwnType(ntree); /* for group usage */
+ ntreeVerifyTypes(ntree); /* internal nodes, no groups! */
}
+ {
+ int has_old_groups=0;
+ /* XXX this should actually be part of do_versions, but since we need
+ * finished library linking, it is not possible there. Instead in do_versions
+ * we have set the NTREE_DO_VERSIONS flag, so at this point we can do the
+ * actual group node updates.
+ */
+ for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) {
+ if (ntree->flag & NTREE_DO_VERSIONS) {
+ /* this adds copies and links from all unlinked internal sockets to group inputs/outputs. */
+ nodeGroupExposeAllSockets(ntree);
+ has_old_groups = 1;
+ }
+ }
+ /* now verify all types in material trees, groups are set OK now */
+ for(ma= main->mat.first; ma; ma= ma->id.next) {
+ if(ma->nodetree)
+ lib_nodetree_do_versions_group(ma->nodetree);
+ }
+ /* and scene trees */
+ for(sce= main->scene.first; sce; sce= sce->id.next) {
+ if(sce->nodetree)
+ lib_nodetree_do_versions_group(sce->nodetree);
+ }
+ /* and texture trees */
+ for(tx= main->tex.first; tx; tx= tx->id.next) {
+ if(tx->nodetree)
+ lib_nodetree_do_versions_group(tx->nodetree);
+ }
+
+ for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next)
+ ntree->flag &= ~NTREE_DO_VERSIONS;
+ }
+
/* now verify all types in material trees, groups are set OK now */
for(ma= main->mat.first; ma; ma= ma->id.next) {
if(ma->nodetree)
@@ -2079,7 +2161,6 @@ static void direct_link_nodetree(FileData *fd, bNodeTree *ntree)
bNodeLink *link;
ntree->init= 0; /* to set callbacks and force setting types */
- ntree->owntype= NULL;
ntree->progress= NULL;
ntree->adt= newdataadr(fd, ntree->adt);
@@ -2117,6 +2198,10 @@ static void direct_link_nodetree(FileData *fd, bNodeTree *ntree)
}
link_list(fd, &ntree->links);
+ /* external sockets */
+ link_list(fd, &ntree->inputs);
+ link_list(fd, &ntree->outputs);
+
/* and we connect the rest */
for(node= ntree->nodes.first; node; node= node->next) {
node->preview= newimaadr(fd, node->preview);
@@ -2126,13 +2211,16 @@ static void direct_link_nodetree(FileData *fd, bNodeTree *ntree)
for(sock= node->outputs.first; sock; sock= sock->next)
sock->ns.data= NULL;
}
+ for(sock= ntree->outputs.first; sock; sock= sock->next)
+ sock->link= newdataadr(fd, sock->link);
+
for(link= ntree->links.first; link; link= link->next) {
link->fromnode= newdataadr(fd, link->fromnode);
link->tonode= newdataadr(fd, link->tonode);
link->fromsock= newdataadr(fd, link->fromsock);
link->tosock= newdataadr(fd, link->tosock);
}
-
+
/* type verification is in lib-link */
}
@@ -3876,7 +3964,14 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
/* Smoke uses only one cache from now on, so store pointer convert */
if(smd->domain->ptcaches[1].first || smd->domain->point_cache[1]) {
- printf("High resolution smoke cache not available due to pointcache update. Please reset the simulation.\n");
+ if(smd->domain->point_cache[1]) {
+ PointCache *cache = newdataadr(fd, smd->domain->point_cache[1]);
+ if(cache->flag & PTCACHE_FAKE_SMOKE)
+ ; /* Smoke was already saved in "new format" and this cache is a fake one. */
+ else
+ printf("High resolution smoke cache not available due to pointcache update. Please reset the simulation.\n");
+ BKE_ptcache_free(cache);
+ }
smd->domain->ptcaches[1].first = NULL;
smd->domain->ptcaches[1].last = NULL;
smd->domain->point_cache[1] = NULL;
@@ -4282,6 +4377,7 @@ static void lib_link_scene(FileData *fd, Main *main)
SEQ_BEGIN(sce->ed, seq) {
if(seq->ipo) seq->ipo= newlibadr_us(fd, sce->id.lib, seq->ipo);
+ seq->scene_sound = NULL;
if(seq->scene) {
seq->scene= newlibadr(fd, sce->id.lib, seq->scene);
seq->scene_sound = sound_scene_add_scene_sound(sce, seq, seq->startdisp, seq->enddisp, seq->startofs + seq->anim_startofs);
@@ -11513,10 +11609,26 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
}
}
+ if (main->versionfile < 256 || (main->versionfile == 256 && main->subversionfile < 2)) {
+ bNodeTree *ntree;
+
+ /* node sockets are not exposed automatically any more,
+ * this mimics the old behaviour by adding all unlinked sockets to groups.
+ */
+ for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next) {
+ /* XXX Only setting a flag here. Actual adding of group sockets
+ * is done in lib_verify_nodetree, because at this point the internal
+ * nodes may not be up-to-date! (missing lib-link)
+ */
+ ntree->flag |= NTREE_DO_VERSIONS;
+ }
+ }
+
/* put compatibility code here until next subversion bump */
-
+
{
bScreen *sc;
+ Brush *brush;
/* redraws flag in SpaceTime has been moved to Screen level */
for (sc = main->screen.first; sc; sc= sc->id.next) {
@@ -11526,8 +11638,13 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
sc->redraws_flag = TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN;
}
}
- }
+ for (brush= main->brush.first; brush; brush= brush->id.next) {
+ if(brush->height == 0)
+ brush->height= 0.4;
+ }
+ }
+
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
/* WATCH IT 2!: Userdef struct init has to be in editors/interface/resources.c! */
diff --git a/source/blender/blenloader/intern/undofile.c b/source/blender/blenloader/intern/undofile.c
index 9cdf8613011..7306db08430 100644
--- a/source/blender/blenloader/intern/undofile.c
+++ b/source/blender/blenloader/intern/undofile.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index c2893f8d732..b8395252493 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -671,6 +671,12 @@ static void write_nodetree(WriteData *wd, bNodeTree *ntree)
for(link= ntree->links.first; link; link= link->next)
writestruct(wd, DATA, "bNodeLink", 1, link);
+
+ /* external sockets */
+ for(sock= ntree->inputs.first; sock; sock= sock->next)
+ writestruct(wd, DATA, "bNodeSocket", 1, sock);
+ for(sock= ntree->outputs.first; sock; sock= sock->next)
+ writestruct(wd, DATA, "bNodeSocket", 1, sock);
}
static void current_screen_compat(Main *mainvar, bScreen **screen)
@@ -1215,7 +1221,7 @@ static void write_modifiers(WriteData *wd, ListBase *modbase)
/* create fake pointcache so that old blender versions can read it */
smd->domain->point_cache[1] = BKE_ptcache_add(&smd->domain->ptcaches[1]);
- smd->domain->point_cache[1]->flag |= PTCACHE_DISK_CACHE;
+ smd->domain->point_cache[1]->flag |= PTCACHE_DISK_CACHE|PTCACHE_FAKE_SMOKE;
smd->domain->point_cache[1]->step = 1;
write_pointcaches(wd, &(smd->domain->ptcaches[1]));
diff --git a/source/blender/blenpluginapi/CMakeLists.txt b/source/blender/blenpluginapi/CMakeLists.txt
index 64e4ab04e08..1e3a3398861 100644
--- a/source/blender/blenpluginapi/CMakeLists.txt
+++ b/source/blender/blenpluginapi/CMakeLists.txt
@@ -30,6 +30,7 @@ set(INC
../blenlib
../imbuf
../makesdna
+ ../blenloader
../../../intern/guardedalloc
)
diff --git a/source/blender/blenpluginapi/SConscript b/source/blender/blenpluginapi/SConscript
index 680ae79f461..32e69069bb0 100644
--- a/source/blender/blenpluginapi/SConscript
+++ b/source/blender/blenpluginapi/SConscript
@@ -3,7 +3,7 @@ Import ('env')
sources = env.Glob('intern/*.c')
-incs = '. .. #/intern/guardedalloc ../blenlib ../imbuf ../makesdna'
+incs = '. .. #/intern/guardedalloc ../blenlib ../imbuf ../makesdna ../blenloader'
defs = []
diff --git a/source/blender/blenpluginapi/documentation.h b/source/blender/blenpluginapi/documentation.h
index bf964d792b6..3bf43a6bc9b 100644
--- a/source/blender/blenpluginapi/documentation.h
+++ b/source/blender/blenpluginapi/documentation.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/blenpluginapi/intern/pluginapi.c b/source/blender/blenpluginapi/intern/pluginapi.c
index a12488ae868..ab21e5a96fc 100644
--- a/source/blender/blenpluginapi/intern/pluginapi.c
+++ b/source/blender/blenpluginapi/intern/pluginapi.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp
index 836c1fae5df..21cd71a90dc 100644
--- a/source/blender/collada/AnimationImporter.cpp
+++ b/source/blender/collada/AnimationImporter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h
index 01abac38280..05347a1fbc1 100644
--- a/source/blender/collada/AnimationImporter.h
+++ b/source/blender/collada/AnimationImporter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file AnimationImporter.h
+ * \ingroup collada
+ */
+
#ifndef __BC_ANIMATIONIMPORTER_H__
#define __BC_ANIMATIONIMPORTER_H__
diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp
index 1427c333175..e8335173d50 100644
--- a/source/blender/collada/ArmatureExporter.cpp
+++ b/source/blender/collada/ArmatureExporter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/ArmatureExporter.h b/source/blender/collada/ArmatureExporter.h
index 8d2508282bd..f72e5244a36 100644
--- a/source/blender/collada/ArmatureExporter.h
+++ b/source/blender/collada/ArmatureExporter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -23,6 +23,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ArmatureExporter.h
+ * \ingroup collada
+ */
+
#ifndef __ARMATUREEXPORTER_H__
#define __ARMATUREEXPORTER_H__
diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp
index e78c1950d33..bf51e64b0bd 100644
--- a/source/blender/collada/ArmatureImporter.cpp
+++ b/source/blender/collada/ArmatureImporter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/ArmatureImporter.h b/source/blender/collada/ArmatureImporter.h
index 7111e2fd9af..d36bccf7e57 100644
--- a/source/blender/collada/ArmatureImporter.h
+++ b/source/blender/collada/ArmatureImporter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ArmatureImporter.h
+ * \ingroup collada
+ */
+
#ifndef __BC_ARMATUREIMPORTER_H__
#define __BC_ARMATUREIMPORTER_H__
diff --git a/source/blender/collada/CMakeLists.txt b/source/blender/collada/CMakeLists.txt
index ce204013f3d..73e81025226 100644
--- a/source/blender/collada/CMakeLists.txt
+++ b/source/blender/collada/CMakeLists.txt
@@ -30,6 +30,7 @@ set(INC
.
../blenlib
../blenkernel
+ ../blenloader
../windowmanager
../makesdna
../makesrna
diff --git a/source/blender/collada/CameraExporter.cpp b/source/blender/collada/CameraExporter.cpp
index d5e2a7e116c..b2c9dd9a7c8 100644
--- a/source/blender/collada/CameraExporter.cpp
+++ b/source/blender/collada/CameraExporter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/CameraExporter.h b/source/blender/collada/CameraExporter.h
index fd20c934c96..922eaf6b1d0 100644
--- a/source/blender/collada/CameraExporter.h
+++ b/source/blender/collada/CameraExporter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -23,6 +23,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file CameraExporter.h
+ * \ingroup collada
+ */
+
#ifndef __CAMERAEXPORTER_H__
#define __CAMERAEXPORTER_H__
diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp
index ea91a42581a..9d9d105d04d 100644
--- a/source/blender/collada/DocumentExporter.cpp
+++ b/source/blender/collada/DocumentExporter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/DocumentExporter.h b/source/blender/collada/DocumentExporter.h
index 4aac393b1ab..9d6d2114cd8 100644
--- a/source/blender/collada/DocumentExporter.h
+++ b/source/blender/collada/DocumentExporter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file DocumentExporter.h
+ * \ingroup collada
+ */
+
#ifndef __DOCUMENTEXPORTER_H__
#define __DOCUMENTEXPORTER_H__
diff --git a/source/blender/collada/DocumentImporter.h b/source/blender/collada/DocumentImporter.h
index 029a74f15b5..e312268c458 100644
--- a/source/blender/collada/DocumentImporter.h
+++ b/source/blender/collada/DocumentImporter.h
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file DocumentImporter.h
+ * \ingroup collada
+ */
+
#ifndef __DOCUMENTIMPORTER_H__
#define __DOCUMENTIMPORTER_H__
diff --git a/source/blender/collada/EffectExporter.cpp b/source/blender/collada/EffectExporter.cpp
index 45b6450e444..d20cb74ba9f 100644
--- a/source/blender/collada/EffectExporter.cpp
+++ b/source/blender/collada/EffectExporter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/EffectExporter.h b/source/blender/collada/EffectExporter.h
index e8f8754b20a..3a3de95458b 100644
--- a/source/blender/collada/EffectExporter.h
+++ b/source/blender/collada/EffectExporter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -23,6 +23,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file EffectExporter.h
+ * \ingroup collada
+ */
+
#ifndef __EFFECTEXPORTER_H__
#define __EFFECTEXPORTER_H__
diff --git a/source/blender/collada/GeometryExporter.cpp b/source/blender/collada/GeometryExporter.cpp
index 73ad6f475de..a637bdc5155 100644
--- a/source/blender/collada/GeometryExporter.cpp
+++ b/source/blender/collada/GeometryExporter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/GeometryExporter.h b/source/blender/collada/GeometryExporter.h
index b3013f7dadc..0b9abaebc25 100644
--- a/source/blender/collada/GeometryExporter.h
+++ b/source/blender/collada/GeometryExporter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -23,6 +23,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GeometryExporter.h
+ * \ingroup collada
+ */
+
#ifndef __GEOMETRYEXPORTER_H__
#define __GEOMETRYEXPORTER_H__
diff --git a/source/blender/collada/ImageExporter.cpp b/source/blender/collada/ImageExporter.cpp
index 240125ddd68..e87f6208d59 100644
--- a/source/blender/collada/ImageExporter.cpp
+++ b/source/blender/collada/ImageExporter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/ImageExporter.h b/source/blender/collada/ImageExporter.h
index 13854d00730..901e6be3ecb 100644
--- a/source/blender/collada/ImageExporter.h
+++ b/source/blender/collada/ImageExporter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -23,6 +23,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ImageExporter.h
+ * \ingroup collada
+ */
+
#ifndef __IMAGEEXPORTER_H__
#define __IMAGEEXPORTER_H__
diff --git a/source/blender/collada/InstanceWriter.cpp b/source/blender/collada/InstanceWriter.cpp
index 746f41fac00..a135b51f025 100644
--- a/source/blender/collada/InstanceWriter.cpp
+++ b/source/blender/collada/InstanceWriter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/InstanceWriter.h b/source/blender/collada/InstanceWriter.h
index 810bd04c7de..03be8d2426c 100644
--- a/source/blender/collada/InstanceWriter.h
+++ b/source/blender/collada/InstanceWriter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -23,6 +23,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file InstanceWriter.h
+ * \ingroup collada
+ */
+
#ifndef __INSTANCEWRITER_H__
#define __INSTANCEWRITER_H__
diff --git a/source/blender/collada/LightExporter.cpp b/source/blender/collada/LightExporter.cpp
index 5786c682d6a..d13a053b8fe 100644
--- a/source/blender/collada/LightExporter.cpp
+++ b/source/blender/collada/LightExporter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/LightExporter.h b/source/blender/collada/LightExporter.h
index 3a4a481e471..685a50ff17e 100644
--- a/source/blender/collada/LightExporter.h
+++ b/source/blender/collada/LightExporter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -23,6 +23,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file LightExporter.h
+ * \ingroup collada
+ */
+
#ifndef __LIGHTEXPORTER_H__
#define __LIGHTEXPORTER_H__
diff --git a/source/blender/collada/MaterialExporter.cpp b/source/blender/collada/MaterialExporter.cpp
index dfb64e383a7..a0d66e6467d 100644
--- a/source/blender/collada/MaterialExporter.cpp
+++ b/source/blender/collada/MaterialExporter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/MaterialExporter.h b/source/blender/collada/MaterialExporter.h
index 2138d26e6a8..033c8526346 100644
--- a/source/blender/collada/MaterialExporter.h
+++ b/source/blender/collada/MaterialExporter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -23,6 +23,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file MaterialExporter.h
+ * \ingroup collada
+ */
+
#ifndef __MATERIALEXPORTER_H__
#define __MATERIALEXPORTER_H__
diff --git a/source/blender/collada/MeshImporter.cpp b/source/blender/collada/MeshImporter.cpp
index b42adc03785..d458b47885f 100644
--- a/source/blender/collada/MeshImporter.cpp
+++ b/source/blender/collada/MeshImporter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/MeshImporter.h b/source/blender/collada/MeshImporter.h
index 19a6ab96ddf..1a9f698a7ce 100644
--- a/source/blender/collada/MeshImporter.h
+++ b/source/blender/collada/MeshImporter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file MeshImporter.h
+ * \ingroup collada
+ */
+
#ifndef __BC__MESHIMPORTER_H__
#define __BC__MESHIMPORTER_H__
diff --git a/source/blender/collada/SConscript b/source/blender/collada/SConscript
index e026f2fb022..10c3fcaeb96 100644
--- a/source/blender/collada/SConscript
+++ b/source/blender/collada/SConscript
@@ -30,11 +30,12 @@ Import ('env')
sources = env.Glob('*.cpp')
defs = []
+# TODO sanitize inc path building
# relative paths to include dirs, space-separated, string
if env['OURPLATFORM']=='darwin':
- incs = '../blenlib ../blenkernel ../windowmanager ../makesdna ../makesrna ../editors/include ../../../intern/guardedalloc [OPENCOLLADA]/COLLADAStreamWriter [OPENCOLLADA]/COLLADABaseUtils [OPENCOLLADA]/COLLADAFramework [OPENCOLLADA]/COLLADASaxFrameworkLoader '.replace('[OPENCOLLADA]', env['BF_OPENCOLLADA_INC'])
+ incs = '../blenlib ../blenkernel ../windowmanager ../blenloader ../makesdna ../makesrna ../editors/include ../../../intern/guardedalloc [OPENCOLLADA]/COLLADAStreamWriter [OPENCOLLADA]/COLLADABaseUtils [OPENCOLLADA]/COLLADAFramework [OPENCOLLADA]/COLLADASaxFrameworkLoader '.replace('[OPENCOLLADA]', env['BF_OPENCOLLADA_INC'])
else:
- incs = '../blenlib ../blenkernel ../windowmanager ../makesdna ../makesrna ../editors/include ../../../intern/guardedalloc [OPENCOLLADA]/COLLADAStreamWriter/include [OPENCOLLADA]/COLLADABaseUtils/include [OPENCOLLADA]/COLLADAFramework/include [OPENCOLLADA]/COLLADASaxFrameworkLoader/include '.replace('[OPENCOLLADA]', env['BF_OPENCOLLADA_INC'])
+ incs = '../blenlib ../blenkernel ../windowmanager ../makesdna ../blenloader ../makesrna ../editors/include ../../../intern/guardedalloc [OPENCOLLADA]/COLLADAStreamWriter/include [OPENCOLLADA]/COLLADABaseUtils/include [OPENCOLLADA]/COLLADAFramework/include [OPENCOLLADA]/COLLADASaxFrameworkLoader/include '.replace('[OPENCOLLADA]', env['BF_OPENCOLLADA_INC'])
if env['BF_BUILDINFO']:
defs.append('NAN_BUILDINFO')
diff --git a/source/blender/collada/SkinInfo.cpp b/source/blender/collada/SkinInfo.cpp
index 4c6713736fb..3e778e09ddf 100644
--- a/source/blender/collada/SkinInfo.cpp
+++ b/source/blender/collada/SkinInfo.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/SkinInfo.h b/source/blender/collada/SkinInfo.h
index 1e31baff2a9..42cb7cd99eb 100644
--- a/source/blender/collada/SkinInfo.h
+++ b/source/blender/collada/SkinInfo.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SkinInfo.h
+ * \ingroup collada
+ */
+
#ifndef __BC_SKININFO_H__
#define __BC_SKININFO_H__
diff --git a/source/blender/collada/TransformReader.cpp b/source/blender/collada/TransformReader.cpp
index 10481fcafbe..04711775f14 100644
--- a/source/blender/collada/TransformReader.cpp
+++ b/source/blender/collada/TransformReader.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/TransformReader.h b/source/blender/collada/TransformReader.h
index 4dff8884a44..3997d8bb1d7 100644
--- a/source/blender/collada/TransformReader.h
+++ b/source/blender/collada/TransformReader.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file TransformReader.h
+ * \ingroup collada
+ */
+
#ifndef __BC_TRANSFORMREADER_H__
#define __BC_TRANSFORMREADER_H__
diff --git a/source/blender/collada/TransformWriter.cpp b/source/blender/collada/TransformWriter.cpp
index a373191e773..c74f23599e8 100644
--- a/source/blender/collada/TransformWriter.cpp
+++ b/source/blender/collada/TransformWriter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/TransformWriter.h b/source/blender/collada/TransformWriter.h
index 054a28c08a1..a0cda4c464f 100644
--- a/source/blender/collada/TransformWriter.h
+++ b/source/blender/collada/TransformWriter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -23,6 +23,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file TransformWriter.h
+ * \ingroup collada
+ */
+
#ifndef __TRANSFORMWRITER_H__
#define __TRANSFORMWRITER_H__
diff --git a/source/blender/collada/collada.cpp b/source/blender/collada/collada.cpp
index 241b63eeade..e285197f8f7 100644
--- a/source/blender/collada/collada.cpp
+++ b/source/blender/collada/collada.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/collada.h b/source/blender/collada/collada.h
index 1c724bef6a6..a167784e217 100644
--- a/source/blender/collada/collada.h
+++ b/source/blender/collada/collada.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -21,6 +21,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file collada.h
+ * \ingroup collada
+ */
+
#ifndef BLENDER_COLLADA_H
#define BLENDER_COLLADA_H
diff --git a/source/blender/collada/collada_internal.cpp b/source/blender/collada/collada_internal.cpp
index e8d91fcbb94..b3ac62bb6a4 100644
--- a/source/blender/collada/collada_internal.cpp
+++ b/source/blender/collada/collada_internal.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/collada_internal.h b/source/blender/collada/collada_internal.h
index 336f66edffd..815113400b4 100644
--- a/source/blender/collada/collada_internal.h
+++ b/source/blender/collada/collada_internal.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -21,6 +21,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file collada_internal.h
+ * \ingroup collada
+ */
+
#ifndef COLLADA_INTERNAL_H
#define COLLADA_INTERNAL_H
diff --git a/source/blender/collada/collada_utils.cpp b/source/blender/collada/collada_utils.cpp
index c61f8cda349..31ef8064b1f 100644
--- a/source/blender/collada/collada_utils.cpp
+++ b/source/blender/collada/collada_utils.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/collada/collada_utils.h b/source/blender/collada/collada_utils.h
index ba5ba7f3cf5..06cf8259dac 100644
--- a/source/blender/collada/collada_utils.h
+++ b/source/blender/collada/collada_utils.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file collada_utils.h
+ * \ingroup collada
+ */
+
#ifndef __BC_UTILS_H__
#define __BC_UTILS_H__
diff --git a/source/blender/editors/animation/CMakeLists.txt b/source/blender/editors/animation/CMakeLists.txt
index 66ec9cf75d6..f506d278cae 100644
--- a/source/blender/editors/animation/CMakeLists.txt
+++ b/source/blender/editors/animation/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/animation/SConscript b/source/blender/editors/animation/SConscript
index 4597a612c7c..96b05b8bccc 100644
--- a/source/blender/editors/animation/SConscript
+++ b/source/blender/editors/animation/SConscript
@@ -4,6 +4,6 @@ Import ('env')
sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
-incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
+incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include ../../blenloader'
env.BlenderLib ( 'bf_editors_animation', sources, Split(incs), [], libtype=['core'], priority=[125] )
diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c
index e59acacdcf0..dbabd47157a 100644
--- a/source/blender/editors/animation/anim_channels_defines.c
+++ b/source/blender/editors/animation/anim_channels_defines.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c
index 338873c2a80..cbbdb3bdd97 100644
--- a/source/blender/editors/animation/anim_channels_edit.c
+++ b/source/blender/editors/animation/anim_channels_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/anim_deps.c b/source/blender/editors/animation/anim_deps.c
index 340101612b9..be4110c68b9 100644
--- a/source/blender/editors/animation/anim_deps.c
+++ b/source/blender/editors/animation/anim_deps.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/anim_draw.c b/source/blender/editors/animation/anim_draw.c
index 8a165b9c71b..9b307b92bec 100644
--- a/source/blender/editors/animation/anim_draw.c
+++ b/source/blender/editors/animation/anim_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c
index 8ab677f0f42..ecb6a1b06ce 100644
--- a/source/blender/editors/animation/anim_filter.c
+++ b/source/blender/editors/animation/anim_filter.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/anim_intern.h b/source/blender/editors/animation/anim_intern.h
index 274d33e4833..4f88f3ed194 100644
--- a/source/blender/editors/animation/anim_intern.h
+++ b/source/blender/editors/animation/anim_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/anim_ipo_utils.c b/source/blender/editors/animation/anim_ipo_utils.c
index 023fd7e4efe..a9ff27e970a 100644
--- a/source/blender/editors/animation/anim_ipo_utils.c
+++ b/source/blender/editors/animation/anim_ipo_utils.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c
index 4b5d11962b2..eaf7590f7dc 100644
--- a/source/blender/editors/animation/anim_markers.c
+++ b/source/blender/editors/animation/anim_markers.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -365,7 +365,7 @@ static void draw_marker(View2D *v2d, TimeMarker *marker, int cfra, int flag)
}
#ifdef DURIAN_CAMERA_SWITCH
- if(marker->camera && marker->camera->restrictflag & OB_RESTRICT_RENDER) {
+ if(marker->camera && (marker->camera->restrictflag & OB_RESTRICT_RENDER)) {
float col[4];
glGetFloatv(GL_CURRENT_COLOR, col);
col[3]= 0.4;
diff --git a/source/blender/editors/animation/anim_ops.c b/source/blender/editors/animation/anim_ops.c
index a641b3d1db4..c08b902a13e 100644
--- a/source/blender/editors/animation/anim_ops.c
+++ b/source/blender/editors/animation/anim_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c
index ede2e243e4a..11795b76905 100644
--- a/source/blender/editors/animation/drivers.c
+++ b/source/blender/editors/animation/drivers.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c
index 04e81a7d0bf..0b8619c1f6e 100644
--- a/source/blender/editors/animation/fmodifier_ui.c
+++ b/source/blender/editors/animation/fmodifier_ui.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c
index dd7020cecab..a2072a60edf 100644
--- a/source/blender/editors/animation/keyframes_draw.c
+++ b/source/blender/editors/animation/keyframes_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c
index e92f903eb0d..4eb0ce2c0b3 100644
--- a/source/blender/editors/animation/keyframes_edit.c
+++ b/source/blender/editors/animation/keyframes_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/keyframes_general.c b/source/blender/editors/animation/keyframes_general.c
index 5ceb1293a58..aea8c2407b4 100644
--- a/source/blender/editors/animation/keyframes_general.c
+++ b/source/blender/editors/animation/keyframes_general.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c
index d53ec9f13e5..adc580c253d 100644
--- a/source/blender/editors/animation/keyframing.c
+++ b/source/blender/editors/animation/keyframing.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c
index 930563678dd..d71c494705e 100644
--- a/source/blender/editors/animation/keyingsets.c
+++ b/source/blender/editors/animation/keyingsets.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -937,6 +937,14 @@ int ANIM_apply_keyingset (bContext *C, ListBase *dsources, bAction *act, KeyingS
int arraylen, i;
short kflag2;
+ /* skip path if no ID pointer is specified */
+ if (ksp->id == NULL) {
+ BKE_reportf(reports, RPT_WARNING,
+ "Skipping path in Keying Set, as it has no ID (KS = '%s', Path = '%s'[%d])",
+ ks->name, ksp->rna_path, ksp->array_index);
+ continue;
+ }
+
/* since keying settings can be defined on the paths too, extend the path before using it */
kflag2 = (kflag | ksp->keyingflag);
@@ -980,20 +988,18 @@ int ANIM_apply_keyingset (bContext *C, ListBase *dsources, bAction *act, KeyingS
}
/* set recalc-flags */
- if (ksp->id) {
- switch (GS(ksp->id->name)) {
- case ID_OB: /* Object (or Object-Related) Keyframes */
- {
- Object *ob= (Object *)ksp->id;
-
- ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; // XXX: only object transforms only?
- }
- break;
+ switch (GS(ksp->id->name)) {
+ case ID_OB: /* Object (or Object-Related) Keyframes */
+ {
+ Object *ob= (Object *)ksp->id;
+
+ ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; // XXX: only object transforms only?
}
-
- /* send notifiers for updates (this doesn't require context to work!) */
- WM_main_add_notifier(NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
+ break;
}
+
+ /* send notifiers for updates (this doesn't require context to work!) */
+ WM_main_add_notifier(NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
/* return the number of channels successfully affected */
diff --git a/source/blender/editors/armature/BIF_generate.h b/source/blender/editors/armature/BIF_generate.h
index e73ba962365..3c9f517726f 100644
--- a/source/blender/editors/armature/BIF_generate.h
+++ b/source/blender/editors/armature/BIF_generate.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/armature/BIF_retarget.h b/source/blender/editors/armature/BIF_retarget.h
index b1b7c38bddc..fe0ac53cfaf 100644
--- a/source/blender/editors/armature/BIF_retarget.h
+++ b/source/blender/editors/armature/BIF_retarget.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/armature/CMakeLists.txt b/source/blender/editors/armature/CMakeLists.txt
index 6355cc20617..8bbfc3465e3 100644
--- a/source/blender/editors/armature/CMakeLists.txt
+++ b/source/blender/editors/armature/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/armature/SConscript b/source/blender/editors/armature/SConscript
index 33e237a14db..beabd912a20 100644
--- a/source/blender/editors/armature/SConscript
+++ b/source/blender/editors/armature/SConscript
@@ -3,7 +3,7 @@ Import ('env')
sources = env.Glob('*.c')
-incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
+incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf ../../blenloader'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
incs += ' ../../gpu ../../makesrna #/intern/opennl/extern'
diff --git a/source/blender/editors/armature/armature_intern.h b/source/blender/editors/armature/armature_intern.h
index d898eddd885..2a1185f99c0 100644
--- a/source/blender/editors/armature/armature_intern.h
+++ b/source/blender/editors/armature/armature_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -103,6 +103,7 @@ void POSE_OT_select_hierarchy(struct wmOperatorType *ot);
void POSE_OT_select_linked(struct wmOperatorType *ot);
void POSE_OT_select_constraint_target(struct wmOperatorType *ot);
void POSE_OT_select_grouped(struct wmOperatorType *ot);
+void POSE_OT_select_flip_active(struct wmOperatorType *ot);
void POSE_OT_group_add(struct wmOperatorType *ot);
void POSE_OT_group_remove(struct wmOperatorType *ot);
diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c
index 1abb1c05489..26414e59a3c 100644
--- a/source/blender/editors/armature/armature_ops.c
+++ b/source/blender/editors/armature/armature_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -119,6 +119,7 @@ void ED_operatortypes_armature(void)
WM_operatortype_append(POSE_OT_select_linked);
WM_operatortype_append(POSE_OT_select_constraint_target);
WM_operatortype_append(POSE_OT_select_grouped);
+ WM_operatortype_append(POSE_OT_select_flip_active);
WM_operatortype_append(POSE_OT_group_add);
WM_operatortype_append(POSE_OT_group_remove);
@@ -132,7 +133,7 @@ void ED_operatortypes_armature(void)
WM_operatortype_append(POSE_OT_autoside_names);
WM_operatortype_append(POSE_OT_flip_names);
-
+
WM_operatortype_append(POSE_OT_quaternions_flip);
WM_operatortype_append(POSE_OT_flags_set);
@@ -165,23 +166,29 @@ void ED_operatormacros_armature(void)
wmOperatorTypeMacro *otmacro;
ot= WM_operatortype_append_macro("ARMATURE_OT_duplicate_move", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER);
- WM_operatortype_macro_define(ot, "ARMATURE_OT_duplicate");
- otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
- RNA_enum_set(otmacro->ptr, "proportional", 0);
+ if(ot) {
+ WM_operatortype_macro_define(ot, "ARMATURE_OT_duplicate");
+ otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
+ RNA_enum_set(otmacro->ptr, "proportional", 0);
+ }
ot= WM_operatortype_append_macro("ARMATURE_OT_extrude_move", "Extrude", OPTYPE_UNDO|OPTYPE_REGISTER);
- otmacro=WM_operatortype_macro_define(ot, "ARMATURE_OT_extrude");
- RNA_enum_set(otmacro->ptr, "forked", 0);
- otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
- RNA_enum_set(otmacro->ptr, "proportional", 0);
+ if(ot) {
+ otmacro=WM_operatortype_macro_define(ot, "ARMATURE_OT_extrude");
+ RNA_enum_set(otmacro->ptr, "forked", 0);
+ otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
+ RNA_enum_set(otmacro->ptr, "proportional", 0);
+ }
// XXX would it be nicer to just be able to have standard extrude_move, but set the forked property separate?
// that would require fixing a properties bug 19733
ot= WM_operatortype_append_macro("ARMATURE_OT_extrude_forked", "Extrude Forked", OPTYPE_UNDO|OPTYPE_REGISTER);
- otmacro=WM_operatortype_macro_define(ot, "ARMATURE_OT_extrude");
- RNA_enum_set(otmacro->ptr, "forked", 1);
- otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
- RNA_enum_set(otmacro->ptr, "proportional", 0);
+ if(ot) {
+ otmacro=WM_operatortype_macro_define(ot, "ARMATURE_OT_extrude");
+ RNA_enum_set(otmacro->ptr, "forked", 1);
+ otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
+ RNA_enum_set(otmacro->ptr, "proportional", 0);
+ }
}
void ED_keymap_armature(wmKeyConfig *keyconf)
@@ -212,6 +219,8 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
/* only set in editmode armature, by space_view3d listener */
WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, 0, 0);
+ kmi= WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_boolean_set(kmi->ptr, "unselected", 1);
WM_keymap_add_item(keymap, "ARMATURE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "ARMATURE_OT_align", AKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
WM_keymap_add_item(keymap, "ARMATURE_OT_calculate_roll", NKEY, KM_PRESS, KM_CTRL, 0);
@@ -323,6 +332,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "POSE_OT_select_linked", LKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "POSE_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, "POSE_OT_select_flip_active", FKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "POSE_OT_constraint_add_with_targets", CKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0);
WM_keymap_add_item(keymap, "POSE_OT_constraints_clear", CKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c
index 2bd840e2c1d..5c1d1300599 100644
--- a/source/blender/editors/armature/editarmature.c
+++ b/source/blender/editors/armature/editarmature.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -3316,11 +3316,12 @@ void ARMATURE_OT_merge (wmOperatorType *ot)
/* ************** END Add/Remove stuff in editmode ************ */
/* *************** Tools in editmode *********** */
-static int armature_hide_exec(bContext *C, wmOperator *UNUSED(op))
+static int armature_hide_exec(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
bArmature *arm= obedit->data;
EditBone *ebone;
+ const int invert= RNA_boolean_get(op->ptr, "unselected") ? BONE_SELECTED : 0;
/* cancel if nothing selected */
if (CTX_DATA_COUNT(C, selected_bones) == 0)
@@ -3328,7 +3329,7 @@ static int armature_hide_exec(bContext *C, wmOperator *UNUSED(op))
for (ebone = arm->edbo->first; ebone; ebone=ebone->next) {
if (EBONE_VISIBLE(arm, ebone)) {
- if (ebone->flag & BONE_SELECTED) {
+ if ((ebone->flag & BONE_SELECTED) != invert) {
ebone->flag &= ~(BONE_TIPSEL|BONE_SELECTED|BONE_ROOTSEL);
ebone->flag |= BONE_HIDDEN_A;
}
@@ -3355,6 +3356,9 @@ void ARMATURE_OT_hide(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* props */
+ RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected.");
}
static int armature_reveal_exec(bContext *C, wmOperator *UNUSED(op))
diff --git a/source/blender/editors/armature/editarmature_generate.c b/source/blender/editors/armature/editarmature_generate.c
index 527f5ba5e69..dfab2db5307 100644
--- a/source/blender/editors/armature/editarmature_generate.c
+++ b/source/blender/editors/armature/editarmature_generate.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/armature/editarmature_retarget.c b/source/blender/editors/armature/editarmature_retarget.c
index a0e465525b2..86df851424c 100644
--- a/source/blender/editors/armature/editarmature_retarget.c
+++ b/source/blender/editors/armature/editarmature_retarget.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/armature/editarmature_sketch.c b/source/blender/editors/armature/editarmature_sketch.c
index c0b77b5feef..c11263810cb 100644
--- a/source/blender/editors/armature/editarmature_sketch.c
+++ b/source/blender/editors/armature/editarmature_sketch.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/armature/meshlaplacian.c b/source/blender/editors/armature/meshlaplacian.c
index 4d78c9e2f7b..efd671c64b3 100644
--- a/source/blender/editors/armature/meshlaplacian.c
+++ b/source/blender/editors/armature/meshlaplacian.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/armature/meshlaplacian.h b/source/blender/editors/armature/meshlaplacian.h
index 26aa0a17d1c..74de015e12e 100644
--- a/source/blender/editors/armature/meshlaplacian.h
+++ b/source/blender/editors/armature/meshlaplacian.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/armature/poseSlide.c b/source/blender/editors/armature/poseSlide.c
index 47e5f734f86..5a7c7ffcaf9 100644
--- a/source/blender/editors/armature/poseSlide.c
+++ b/source/blender/editors/armature/poseSlide.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/armature/poseUtils.c b/source/blender/editors/armature/poseUtils.c
index 7b1b3b6c5c8..c9ba7583689 100644
--- a/source/blender/editors/armature/poseUtils.c
+++ b/source/blender/editors/armature/poseUtils.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/armature/poselib.c b/source/blender/editors/armature/poselib.c
index 9577c45de50..13a8cef3d07 100644
--- a/source/blender/editors/armature/poselib.c
+++ b/source/blender/editors/armature/poselib.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -141,11 +141,18 @@ static TimeMarker *poselib_get_active_pose (bAction *act)
}
/* Get object that Pose Lib should be found on */
+ /* XXX C can be zero */
static Object *get_poselib_object (bContext *C)
{
- ScrArea *sa = CTX_wm_area(C);
+ ScrArea *sa;
- if (sa->spacetype == SPACE_BUTS)
+ /* sanity check */
+ if (C == NULL)
+ return NULL;
+
+ sa = CTX_wm_area(C);
+
+ if (sa && (sa->spacetype == SPACE_BUTS))
return CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
else
return ED_object_pose_armature(CTX_data_active_object(C));
@@ -342,7 +349,7 @@ void POSELIB_OT_action_sanitise (wmOperatorType *ot)
static void poselib_add_menu_invoke__replacemenu (bContext *C, uiLayout *layout, void *UNUSED(arg))
{
Object *ob= get_poselib_object(C);
- bAction *act= ob->poselib;
+ bAction *act= (ob) ? ob->poselib : NULL;
TimeMarker *marker;
/* set the operator execution context correctly */
@@ -473,8 +480,8 @@ void POSELIB_OT_pose_add (wmOperatorType *ot)
/* can be called with C == NULL */
static EnumPropertyItem *poselib_stored_pose_itemf(bContext *C, PointerRNA *UNUSED(ptr), int *free)
{
- Object *ob;
- bAction *act;
+ Object *ob = get_poselib_object(C);
+ bAction *act = (ob) ? ob->poselib : NULL;
TimeMarker *marker;
EnumPropertyItem *item= NULL, item_tmp= {0};
int totitem= 0;
@@ -484,9 +491,6 @@ static EnumPropertyItem *poselib_stored_pose_itemf(bContext *C, PointerRNA *UNUS
return DummyRNA_DEFAULT_items;
}
- ob= get_poselib_object(C);
- act= (ob) ? ob->poselib : NULL;
-
/* check that the action exists */
if (act) {
/* add each marker to the list */
diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c
index c122460e5bb..01e534cd538 100644
--- a/source/blender/editors/armature/poseobject.c
+++ b/source/blender/editors/armature/poseobject.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -656,6 +656,62 @@ void POSE_OT_select_grouped (wmOperatorType *ot)
ot->prop= RNA_def_enum(ot->srna, "type", prop_select_grouped_types, 0, "Type", "");
}
+
+/* ********************************************** */
+
+/* context active object, or weightpainted object with armature in posemode */
+static int pose_bone_flip_active_exec (bContext *C, wmOperator *UNUSED(op))
+{
+ Object *ob_act= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(ob_act);
+
+ if(ob && (ob->mode & OB_MODE_POSE)) {
+ bArmature *arm= ob->data;
+
+ if(arm->act_bone) {
+ bPoseChannel *pchanf;
+ char name[MAXBONENAME];
+ flip_side_name(name, arm->act_bone->name, TRUE);
+
+ pchanf= get_pose_channel(ob->pose, name);
+ if(pchanf && pchanf->bone != arm->act_bone) {
+ arm->act_bone->flag &= ~BONE_SELECTED;
+ pchanf->bone->flag |= BONE_SELECTED;
+
+ arm->act_bone= pchanf->bone;
+
+ /* in weightpaint we select the associated vertex group too */
+ if(ob_act->mode & OB_MODE_WEIGHT_PAINT) {
+ ED_vgroup_select_by_name(ob_act, name);
+ DAG_id_tag_update(&ob_act->id, OB_RECALC_DATA);
+ }
+
+ WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, ob);
+
+ return OPERATOR_FINISHED;
+ }
+ }
+ }
+
+ return OPERATOR_CANCELLED;
+}
+
+void POSE_OT_select_flip_active(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Flip Selected Active Bone";
+ ot->idname= "POSE_OT_select_flip_active";
+ ot->description= "Activate the bone with a flipped name.";
+
+ /* api callbacks */
+ ot->exec= pose_bone_flip_active_exec;
+ ot->poll= ED_operator_posemode;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+
/* ********************************************** */
#if 0 /* UNUSED 2.5 */
static void pose_copy_menu(Scene *scene)
@@ -1562,48 +1618,6 @@ void POSE_OT_autoside_names (wmOperatorType *ot)
/* ********************************************** */
-/* context active object, or weightpainted object with armature in posemode */
-static void pose_activate_flipped_bone(Scene *scene)
-{
- Object *ob= OBACT;
-
- if(ob==NULL) return;
-
- if(ob->mode & OB_MODE_WEIGHT_PAINT) {
- ob= modifiers_isDeformedByArmature(ob);
- }
-
- if(ob && (ob->mode & OB_MODE_POSE)) {
- bPoseChannel *pchanf;
- bArmature *arm= ob->data;
-
- if(arm->act_bone) {
- char name[32];
- flip_side_name(name, arm->act_bone->name, TRUE);
-
- pchanf= get_pose_channel(ob->pose, name);
- if(pchanf && pchanf->bone != arm->act_bone) {
- arm->act_bone->flag &= ~BONE_SELECTED;
- pchanf->bone->flag |= BONE_SELECTED;
-
- arm->act_bone= pchanf->bone;
-
- /* in weightpaint we select the associated vertex group too */
- if(ob->mode & OB_MODE_WEIGHT_PAINT) {
- ED_vgroup_select_by_name(OBACT, name);
- DAG_id_tag_update(&OBACT->id, OB_RECALC_DATA);
- }
-
- // XXX notifiers need to be sent to other editors to update
-
- }
- }
- }
-}
-
-
-/* ********************************************** */
-
/* Show all armature layers */
static int pose_armature_layers_showall_poll (bContext *C)
{
diff --git a/source/blender/editors/armature/reeb.c b/source/blender/editors/armature/reeb.c
index 0e0be99a88a..61ad5528607 100644
--- a/source/blender/editors/armature/reeb.c
+++ b/source/blender/editors/armature/reeb.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/armature/reeb.h b/source/blender/editors/armature/reeb.h
index cee42313db6..05fba609041 100644
--- a/source/blender/editors/armature/reeb.h
+++ b/source/blender/editors/armature/reeb.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/curve/CMakeLists.txt b/source/blender/editors/curve/CMakeLists.txt
index 708908eda2b..a73fb9502a6 100644
--- a/source/blender/editors/curve/CMakeLists.txt
+++ b/source/blender/editors/curve/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/curve/SConscript b/source/blender/editors/curve/SConscript
index f72fc6c8863..efb56ce5466 100644
--- a/source/blender/editors/curve/SConscript
+++ b/source/blender/editors/curve/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../gpu'
+incs += ' ../../gpu ../../blenloader'
incs += ' ../../makesrna ../../render/extern/include #/intern/elbeem/extern'
env.BlenderLib ( 'bf_editors_curve', sources, Split(incs), [], libtype=['core'], priority=[45] )
diff --git a/source/blender/editors/curve/curve_intern.h b/source/blender/editors/curve/curve_intern.h
index 0867556b7f4..551c03b0ae5 100644
--- a/source/blender/editors/curve/curve_intern.h
+++ b/source/blender/editors/curve/curve_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/curve/curve_ops.c b/source/blender/editors/curve/curve_ops.c
index bb4b81f3078..43df7fa3528 100644
--- a/source/blender/editors/curve/curve_ops.c
+++ b/source/blender/editors/curve/curve_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c
index 857a461e26e..bceb103503c 100644
--- a/source/blender/editors/curve/editcurve.c
+++ b/source/blender/editors/curve/editcurve.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c
index 4b2b0043f65..9616d452333 100644
--- a/source/blender/editors/curve/editfont.c
+++ b/source/blender/editors/curve/editfont.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/curve/lorem.c b/source/blender/editors/curve/lorem.c
index b38b24ac33a..1c86acf7b1b 100644
--- a/source/blender/editors/curve/lorem.c
+++ b/source/blender/editors/curve/lorem.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/gpencil/CMakeLists.txt b/source/blender/editors/gpencil/CMakeLists.txt
index 7b22a5a3171..4269c590a14 100644
--- a/source/blender/editors/gpencil/CMakeLists.txt
+++ b/source/blender/editors/gpencil/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../imbuf
../../makesdna
diff --git a/source/blender/editors/gpencil/SConscript b/source/blender/editors/gpencil/SConscript
index 06d78d1e7e0..d2fd9e5fe9d 100644
--- a/source/blender/editors/gpencil/SConscript
+++ b/source/blender/editors/gpencil/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../gpu'
+incs += ' ../../gpu ../../blenloader'
incs += ' ../../makesrna ../../render/extern/include #/intern/elbeem/extern'
env.BlenderLib ( 'bf_editors_gpencil', sources, Split(incs), [], libtype=['core'], priority=[45] )
diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c
index 901542ea2de..7ef17542ea4 100644
--- a/source/blender/editors/gpencil/drawgpencil.c
+++ b/source/blender/editors/gpencil/drawgpencil.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/gpencil/editaction_gpencil.c b/source/blender/editors/gpencil/editaction_gpencil.c
index 643b6c7082f..6ea8b77cc71 100644
--- a/source/blender/editors/gpencil/editaction_gpencil.c
+++ b/source/blender/editors/gpencil/editaction_gpencil.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/gpencil/gpencil_buttons.c b/source/blender/editors/gpencil/gpencil_buttons.c
index 6af5e4cd92b..e6d22e3049f 100644
--- a/source/blender/editors/gpencil/gpencil_buttons.c
+++ b/source/blender/editors/gpencil/gpencil_buttons.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index 498108e8d0e..b699d27dd89 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/gpencil/gpencil_intern.h b/source/blender/editors/gpencil/gpencil_intern.h
index 1bfe65eb36c..7ae68d194b3 100644
--- a/source/blender/editors/gpencil/gpencil_intern.h
+++ b/source/blender/editors/gpencil/gpencil_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/gpencil/gpencil_ops.c b/source/blender/editors/gpencil/gpencil_ops.c
index a84bf5774f6..55b2d2aa73d 100644
--- a/source/blender/editors/gpencil/gpencil_ops.c
+++ b/source/blender/editors/gpencil/gpencil_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 0ebbe223c3f..db594694e64 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/include/BIF_gl.h b/source/blender/editors/include/BIF_gl.h
index aca0e671067..85244a85613 100644
--- a/source/blender/editors/include/BIF_gl.h
+++ b/source/blender/editors/include/BIF_gl.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,10 @@
* os dependent include locations of gl.h
*/
+/** \file BIF_gl.h
+ * \ingroup editorui
+ */
+
#ifndef BIF_GL_H
#define BIF_GL_H
diff --git a/source/blender/editors/include/BIF_glutil.h b/source/blender/editors/include/BIF_glutil.h
index 3fa07da0437..c9615204607 100644
--- a/source/blender/editors/include/BIF_glutil.h
+++ b/source/blender/editors/include/BIF_glutil.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file BIF_glutil.h
+ * \ingroup editorui
+ */
+
#ifndef BIF_GLUTIL_H
#define BIF_GLUTIL_H
diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h
index 997250b7a2a..4a2711df7dd 100644
--- a/source/blender/editors/include/ED_anim_api.h
+++ b/source/blender/editors/include/ED_anim_api.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_anim_api.h
+ * \ingroup editors
+ */
+
#ifndef ED_ANIM_API_H
#define ED_ANIM_API_H
diff --git a/source/blender/editors/include/ED_armature.h b/source/blender/editors/include/ED_armature.h
index be63b1bf1ce..fcd56277b87 100644
--- a/source/blender/editors/include/ED_armature.h
+++ b/source/blender/editors/include/ED_armature.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -24,6 +24,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_armature.h
+ * \ingroup editors
+ */
+
#ifndef ED_ARMATURE_H
#define ED_ARMATURE_H
diff --git a/source/blender/editors/include/ED_curve.h b/source/blender/editors/include/ED_curve.h
index 3d8c5dd7cae..08a63a470c1 100644
--- a/source/blender/editors/include/ED_curve.h
+++ b/source/blender/editors/include/ED_curve.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_curve.h
+ * \ingroup editors
+ */
+
#ifndef ED_CURVE_H
#define ED_CURVE_H
diff --git a/source/blender/editors/include/ED_datafiles.h b/source/blender/editors/include/ED_datafiles.h
index 2c352abcd00..ee29df3fffb 100644
--- a/source/blender/editors/include/ED_datafiles.h
+++ b/source/blender/editors/include/ED_datafiles.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_datafiles.h
+ * \ingroup editors
+ */
+
#ifndef ED_DATAFILES_H
#define ED_DATAFILES_H
diff --git a/source/blender/editors/include/ED_fileselect.h b/source/blender/editors/include/ED_fileselect.h
index a7d763ca4c8..6b91779b832 100644
--- a/source/blender/editors/include/ED_fileselect.h
+++ b/source/blender/editors/include/ED_fileselect.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_fileselect.h
+ * \ingroup editors
+ */
+
#ifndef ED_FILES_H
#define ED_FILES_H
diff --git a/source/blender/editors/include/ED_fluidsim.h b/source/blender/editors/include/ED_fluidsim.h
index a1ab3ba2fcc..3388280e5fa 100644
--- a/source/blender/editors/include/ED_fluidsim.h
+++ b/source/blender/editors/include/ED_fluidsim.h
@@ -1,4 +1,4 @@
-/**
+/*
* BKE_fluidsim.h
*
* $Id$
@@ -28,6 +28,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_fluidsim.h
+ * \ingroup editors
+ */
+
#ifndef ED_FLUIDSIM_H
#define ED_FLUIDSIM_H
diff --git a/source/blender/editors/include/ED_gpencil.h b/source/blender/editors/include/ED_gpencil.h
index 08a015a5271..d06b0d6c4ee 100644
--- a/source/blender/editors/include/ED_gpencil.h
+++ b/source/blender/editors/include/ED_gpencil.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_gpencil.h
+ * \ingroup editors
+ */
+
#ifndef ED_GPENCIL_H
#define ED_GPENCIL_H
diff --git a/source/blender/editors/include/ED_image.h b/source/blender/editors/include/ED_image.h
index 7f507eab276..2c866495503 100644
--- a/source/blender/editors/include/ED_image.h
+++ b/source/blender/editors/include/ED_image.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_image.h
+ * \ingroup editors
+ */
+
#ifndef ED_IMAGE_H
#define ED_IMAGE_H
diff --git a/source/blender/editors/include/ED_info.h b/source/blender/editors/include/ED_info.h
index ece57d19ace..c76c478c6d6 100644
--- a/source/blender/editors/include/ED_info.h
+++ b/source/blender/editors/include/ED_info.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_info.h
+ * \ingroup editors
+ */
+
#ifndef ED_INFO_H
#define ED_INFO_H
diff --git a/source/blender/editors/include/ED_keyframes_draw.h b/source/blender/editors/include/ED_keyframes_draw.h
index 10ddf6baaeb..c697f8cc435 100644
--- a/source/blender/editors/include/ED_keyframes_draw.h
+++ b/source/blender/editors/include/ED_keyframes_draw.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_keyframes_draw.h
+ * \ingroup editors
+ */
+
#ifndef ED_KEYFRAMES_DRAW_H
#define ED_KEYFRAMES_DRAW_H
diff --git a/source/blender/editors/include/ED_keyframes_edit.h b/source/blender/editors/include/ED_keyframes_edit.h
index 2a7ce9b540b..e6fe7efbaba 100644
--- a/source/blender/editors/include/ED_keyframes_edit.h
+++ b/source/blender/editors/include/ED_keyframes_edit.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_keyframes_edit.h
+ * \ingroup editors
+ */
+
#ifndef ED_KEYFRAMES_EDIT_H
#define ED_KEYFRAMES_EDIT_H
diff --git a/source/blender/editors/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h
index 3fea3fa03a5..7bab563641a 100644
--- a/source/blender/editors/include/ED_keyframing.h
+++ b/source/blender/editors/include/ED_keyframing.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_keyframing.h
+ * \ingroup editors
+ */
+
#ifndef ED_KEYFRAMING_H
#define ED_KEYFRAMING_H
diff --git a/source/blender/editors/include/ED_lattice.h b/source/blender/editors/include/ED_lattice.h
index bebd6c5f3ab..066dd23a629 100644
--- a/source/blender/editors/include/ED_lattice.h
+++ b/source/blender/editors/include/ED_lattice.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_lattice.h
+ * \ingroup editors
+ */
+
struct Object;
void free_editLatt(struct Object *ob);
diff --git a/source/blender/editors/include/ED_logic.h b/source/blender/editors/include/ED_logic.h
index 96d10cf2c72..00fc6ccac26 100644
--- a/source/blender/editors/include/ED_logic.h
+++ b/source/blender/editors/include/ED_logic.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -24,6 +24,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_logic.h
+ * \ingroup editors
+ */
+
#ifndef ED_LOGIC_H
#define ED_LOGIC_H
diff --git a/source/blender/editors/include/ED_markers.h b/source/blender/editors/include/ED_markers.h
index 1f71c377ec0..728d9253760 100644
--- a/source/blender/editors/include/ED_markers.h
+++ b/source/blender/editors/include/ED_markers.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_markers.h
+ * \ingroup editors
+ */
+
#ifndef ED_MARKERS_H
#define ED_MARKERS_H
diff --git a/source/blender/editors/include/ED_mball.h b/source/blender/editors/include/ED_mball.h
index f5021fb9570..504cc4e2d52 100644
--- a/source/blender/editors/include/ED_mball.h
+++ b/source/blender/editors/include/ED_mball.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,13 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_mball.h
+ * \ingroup editors
+ */
+
+#ifndef _ED_MBALL_H_
+#define _ED_MBALL_H_
+
struct bContext;
struct Object;
struct wmKeyConfig;
@@ -43,3 +50,5 @@ void load_editMball(struct Object *obedit);
void undo_push_mball(struct bContext *C, const char *name);
+#endif
+
diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h
index 3d735495fec..054e46971b5 100644
--- a/source/blender/editors/include/ED_mesh.h
+++ b/source/blender/editors/include/ED_mesh.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_mesh.h
+ * \ingroup editors
+ */
+
#ifndef ED_MESH_H
#define ED_MESH_H
@@ -188,10 +193,8 @@ void paintface_deselect_all_visible(struct Object *ob, int action, short flush_f
void paintface_select_linked(struct bContext *C, struct Object *ob, short mval[2], int mode);
int paintface_minmax(struct Object *ob, float *min, float *max);
-/* TODO, 2.5x */
-void paintface_unhide(struct Scene *scene);
-void paintface_hide(struct Scene *scene);
-void paintface_select_swap(struct Scene *scene);
+void paintface_hide(struct Object *ob, const int unselected);
+void paintface_reveal(struct Object *ob);
/* object_vgroup.c */
diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h
index d287066828f..829ad3217a9 100644
--- a/source/blender/editors/include/ED_node.h
+++ b/source/blender/editors/include/ED_node.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_node.h
+ * \ingroup editors
+ */
+
#ifndef ED_NODE_H
#define ED_NODE_H
diff --git a/source/blender/editors/include/ED_numinput.h b/source/blender/editors/include/ED_numinput.h
index 7df1f1f28cb..d605a9b3377 100644
--- a/source/blender/editors/include/ED_numinput.h
+++ b/source/blender/editors/include/ED_numinput.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_numinput.h
+ * \ingroup editors
+ */
+
#ifndef ED_NUMINPUT_H
#define ED_NUMINPUT_H
diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h
index 2f54c242717..ce6a9d609db 100644
--- a/source/blender/editors/include/ED_object.h
+++ b/source/blender/editors/include/ED_object.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_object.h
+ * \ingroup editors
+ */
+
#ifndef ED_OBJECT_H
#define ED_OBJECT_H
diff --git a/source/blender/editors/include/ED_particle.h b/source/blender/editors/include/ED_particle.h
index 77c4b1bbed6..7b4a2e6fe16 100644
--- a/source/blender/editors/include/ED_particle.h
+++ b/source/blender/editors/include/ED_particle.h
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_particle.h
+ * \ingroup editors
+ */
+
#ifndef ED_PARTICLE_H
#define ED_PARTICLE_H
diff --git a/source/blender/editors/include/ED_physics.h b/source/blender/editors/include/ED_physics.h
index 51906bf41c1..c58e70a0768 100644
--- a/source/blender/editors/include/ED_physics.h
+++ b/source/blender/editors/include/ED_physics.h
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_physics.h
+ * \ingroup editors
+ */
+
#ifndef ED_PHYSICS_H
#define ED_PHYSICS_H
diff --git a/source/blender/editors/include/ED_render.h b/source/blender/editors/include/ED_render.h
index 44d76b635a1..651c298ad5e 100644
--- a/source/blender/editors/include/ED_render.h
+++ b/source/blender/editors/include/ED_render.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -21,6 +21,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_render.h
+ * \ingroup editors
+ */
+
#ifndef ED_RENDER_H
#define ED_RENDER_H
diff --git a/source/blender/editors/include/ED_screen.h b/source/blender/editors/include/ED_screen.h
index 1ceb2216938..f1665f2b165 100644
--- a/source/blender/editors/include/ED_screen.h
+++ b/source/blender/editors/include/ED_screen.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_screen.h
+ * \ingroup editors
+ */
+
#ifndef ED_SCREEN_H
#define ED_SCREEN_H
diff --git a/source/blender/editors/include/ED_screen_types.h b/source/blender/editors/include/ED_screen_types.h
index 240075565af..71e3780fe24 100644
--- a/source/blender/editors/include/ED_screen_types.h
+++ b/source/blender/editors/include/ED_screen_types.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_screen_types.h
+ * \ingroup editors
+ */
+
#ifndef ED_SCREEN_TYPES_H__
#define ED_SCREEN_TYPES_H__
diff --git a/source/blender/editors/include/ED_sculpt.h b/source/blender/editors/include/ED_sculpt.h
index cac6a1a2d13..33d2dfcf4c5 100644
--- a/source/blender/editors/include/ED_sculpt.h
+++ b/source/blender/editors/include/ED_sculpt.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_sculpt.h
+ * \ingroup editors
+ */
+
#ifndef ED_SCULPT_H
#define ED_SCULPT_H
diff --git a/source/blender/editors/include/ED_sequencer.h b/source/blender/editors/include/ED_sequencer.h
index d99187afce9..39eb66e56e9 100644
--- a/source/blender/editors/include/ED_sequencer.h
+++ b/source/blender/editors/include/ED_sequencer.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_sequencer.h
+ * \ingroup editors
+ */
+
#ifndef ED_SEQUENCER_H
#define ED_SEQUENCER_H
diff --git a/source/blender/editors/include/ED_sound.h b/source/blender/editors/include/ED_sound.h
index 8b157d86279..3c6b12da076 100644
--- a/source/blender/editors/include/ED_sound.h
+++ b/source/blender/editors/include/ED_sound.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_sound.h
+ * \ingroup editors
+ */
+
#ifndef ED_SOUND_H
#define ED_SOUND_H
diff --git a/source/blender/editors/include/ED_space_api.h b/source/blender/editors/include/ED_space_api.h
index 69a3d1f758a..053b1d4fd9c 100644
--- a/source/blender/editors/include/ED_space_api.h
+++ b/source/blender/editors/include/ED_space_api.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_space_api.h
+ * \ingroup editors
+ */
+
#ifndef ED_SPACE_API_H
#define ED_SPACE_API_H
diff --git a/source/blender/editors/include/ED_text.h b/source/blender/editors/include/ED_text.h
index 081e83b1844..bc8c9958e18 100644
--- a/source/blender/editors/include/ED_text.h
+++ b/source/blender/editors/include/ED_text.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_text.h
+ * \ingroup editors
+ */
+
#ifndef ED_TEXT_H
#define ED_TEXT_H
diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h
index 5864449a490..3ab634afeff 100644
--- a/source/blender/editors/include/ED_transform.h
+++ b/source/blender/editors/include/ED_transform.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_transform.h
+ * \ingroup editors
+ */
+
#ifndef ED_TRANSFORM_H
#define ED_TRANSFORM_H
diff --git a/source/blender/editors/include/ED_types.h b/source/blender/editors/include/ED_types.h
index a0d1e0d65ec..0218b8d9c2d 100644
--- a/source/blender/editors/include/ED_types.h
+++ b/source/blender/editors/include/ED_types.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_types.h
+ * \ingroup editors
+ */
+
#ifndef ED_TYPES_H
#define ED_TYPES_H
diff --git a/source/blender/editors/include/ED_util.h b/source/blender/editors/include/ED_util.h
index 473d889c731..77b754519fb 100644
--- a/source/blender/editors/include/ED_util.h
+++ b/source/blender/editors/include/ED_util.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_util.h
+ * \ingroup editors
+ */
+
#ifndef ED_UTIL_H
#define ED_UTIL_H
@@ -52,6 +57,7 @@ void ED_undo_pop_op (struct bContext *C, struct wmOperator *op);
void ED_undo_pop (struct bContext *C);
void ED_undo_redo (struct bContext *C);
void ED_OT_undo (struct wmOperatorType *ot);
+void ED_OT_undo_push (struct wmOperatorType *ot);
void ED_OT_redo (struct wmOperatorType *ot);
int ED_undo_operator_repeat(struct bContext *C, struct wmOperator *op);
diff --git a/source/blender/editors/include/ED_uvedit.h b/source/blender/editors/include/ED_uvedit.h
index a2a0cefc55b..a0c4148c055 100644
--- a/source/blender/editors/include/ED_uvedit.h
+++ b/source/blender/editors/include/ED_uvedit.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file ED_uvedit.h
+ * \ingroup editors
+ */
+
#ifndef ED_UVEDIT_H
#define ED_UVEDIT_H
diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h
index 4afe2ff10a2..53a518d1fe6 100644
--- a/source/blender/editors/include/ED_view3d.h
+++ b/source/blender/editors/include/ED_view3d.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file ED_view3d.h
+ * \ingroup editors
+ */
+
#ifndef ED_VIEW3D_H
#define ED_VIEW3D_H
diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h
index a145df908b9..b2a353b0647 100644
--- a/source/blender/editors/include/UI_icons.h
+++ b/source/blender/editors/include/UI_icons.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file UI_icons.h
+ * \ingroup editorui
+ */
+
/* Note: this is included twice with different #defines for DEF_ICON
once from UI_resources.h for the internal icon enum and
once for interface_api.c for the definition of the RNA enum for the icons */
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index 3e607b37067..55d7d0c219d 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file UI_interface.h
+ * \ingroup editorui
+ */
+
#ifndef UI_INTERFACE_H
#define UI_INTERFACE_H
diff --git a/source/blender/editors/include/UI_interface_icons.h b/source/blender/editors/include/UI_interface_icons.h
index 34a390b250e..50b14cb832a 100644
--- a/source/blender/editors/include/UI_interface_icons.h
+++ b/source/blender/editors/include/UI_interface_icons.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file UI_interface_icons.h
+ * \ingroup editorui
+ */
+
#ifndef UI_INTERFACE_ICONS_H
#define UI_INTERFACE_ICONS_H
diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h
index 5c97da4ebc9..2fb2e882afb 100644
--- a/source/blender/editors/include/UI_resources.h
+++ b/source/blender/editors/include/UI_resources.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
@@ -30,6 +30,10 @@
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
+/** \file UI_resources.h
+ * \ingroup editorui
+ */
+
#ifndef UI_RESOURCES_H
#define UI_RESOURCES_H
diff --git a/source/blender/editors/include/UI_view2d.h b/source/blender/editors/include/UI_view2d.h
index 7cad1d82d50..1aadb63181d 100644
--- a/source/blender/editors/include/UI_view2d.h
+++ b/source/blender/editors/include/UI_view2d.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +29,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file UI_view2d.h
+ * \ingroup editorui
+ */
+
#ifndef UI_VIEW2D_H
#define UI_VIEW2D_H
diff --git a/source/blender/editors/interface/CMakeLists.txt b/source/blender/editors/interface/CMakeLists.txt
index 6be7314304f..09ea9f9ad7e 100644
--- a/source/blender/editors/interface/CMakeLists.txt
+++ b/source/blender/editors/interface/CMakeLists.txt
@@ -23,6 +23,7 @@ set(INC
../include
../../blenfont
../../blenkernel
+ ../../blenloader
../../blenlib
../../gpu
../../imbuf
diff --git a/source/blender/editors/interface/SConscript b/source/blender/editors/interface/SConscript
index 639a5268ca2..5998d4d2953 100644
--- a/source/blender/editors/interface/SConscript
+++ b/source/blender/editors/interface/SConscript
@@ -8,7 +8,7 @@ for source in env.Glob('*_api.c'):
incs = '../include ../../blenlib ../../blenfont ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../makesrna ../../windowmanager #/intern/guardedalloc ../../gpu'
-incs += ' #/extern/glew/include'
+incs += ' #/extern/glew/include ../../blenloader'
incs += ' ../../python/' # python button eval
defs = []
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index 5843412940a..674ad8d4a49 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c
index 86795e27bb4..940a9791a4e 100644
--- a/source/blender/editors/interface/interface_draw.c
+++ b/source/blender/editors/interface/interface_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 67e4548b0b7..acc806555ce 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -4042,6 +4042,7 @@ static uiBlock *menu_add_shortcut(bContext *C, ARegion *ar, void *arg)
uiStyle *style= U.uistyles.first;
IDProperty *prop= (but->opptr)? but->opptr->data: NULL;
+ /* XXX this guess_opname can potentially return a different keymap than being found on adding later... */
km = WM_keymap_guess_opname(C, but->optype->idname);
kmi = WM_keymap_add_item(km, but->optype->idname, AKEY, KM_PRESS, 0, 0);
diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c
index 63841963c6d..6efed8c8e22 100644
--- a/source/blender/editors/interface/interface_icons.c
+++ b/source/blender/editors/interface/interface_icons.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index 52214bf3fa7..b5f8897d32c 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 4398e7a2287..432904fd243 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c
index 9734150ab5c..2e6793fb5d5 100644
--- a/source/blender/editors/interface/interface_ops.c
+++ b/source/blender/editors/interface/interface_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index 89d648e64be..c069ae4d833 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index 31523685527..c1eaf66fb65 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
diff --git a/source/blender/editors/interface/interface_style.c b/source/blender/editors/interface/interface_style.c
index af0b2189a99..8e206f35b7f 100644
--- a/source/blender/editors/interface/interface_style.c
+++ b/source/blender/editors/interface/interface_style.c
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index e0a3a7b15af..0221364e506 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -737,8 +737,6 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
/* tesselation point for curve-typed objects */
if (ELEM3(ob->type, OB_CURVE, OB_SURF, OB_FONT)) {
- ModifierTypeInfo *mti = modifierType_getInfo(md->type);
-
/* some modifiers could work with pre-tesselated curves only */
if (ELEM3(md->type, eModifierType_Hook, eModifierType_Softbody, eModifierType_MeshDeform)) {
/* add disabled pre-tesselated button, so users could have
diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c
index 842dc40a39f..e7848c07095 100644
--- a/source/blender/editors/interface/interface_utils.c
+++ b/source/blender/editors/interface/interface_utils.c
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -99,7 +99,6 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
break;
case PROP_POINTER: {
PointerRNA pptr;
- int icon;
pptr= RNA_property_pointer_get(ptr, prop);
if(!pptr.type)
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index e3c465dd4c8..aaa46a3105f 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 9ab45ae648b..2fe50bba7ab 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c
index 245905418ec..e4c328758c0 100644
--- a/source/blender/editors/interface/view2d.c
+++ b/source/blender/editors/interface/view2d.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/interface/view2d_ops.c b/source/blender/editors/interface/view2d_ops.c
index 5906283050f..66a58e71ed6 100644
--- a/source/blender/editors/interface/view2d_ops.c
+++ b/source/blender/editors/interface/view2d_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/mesh/CMakeLists.txt b/source/blender/editors/mesh/CMakeLists.txt
index 82d1c7430fc..8ff323d88b6 100644
--- a/source/blender/editors/mesh/CMakeLists.txt
+++ b/source/blender/editors/mesh/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../imbuf
../../makesdna
diff --git a/source/blender/editors/mesh/SConscript b/source/blender/editors/mesh/SConscript
index f5f8bb940e8..34936c025bc 100644
--- a/source/blender/editors/mesh/SConscript
+++ b/source/blender/editors/mesh/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../gpu'
+incs += ' ../../gpu ../../blenloader'
incs += ' ../../makesrna ../../render/extern/include #/intern/elbeem/extern'
if env['OURPLATFORM'] == 'linux2':
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c
index fa202bde54f..552f4b3b954 100644
--- a/source/blender/editors/mesh/editface.c
+++ b/source/blender/editors/mesh/editface.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -152,61 +152,55 @@ MTFace *EM_get_active_mtface(EditMesh *em, EditFace **act_efa, MCol **mcol, int
return NULL;
}
-void paintface_unhide(Scene *scene)
+void paintface_hide(Object *ob, const int unselected)
{
Mesh *me;
MFace *mface;
int a;
- me= get_mesh(OBACT);
+ me= get_mesh(ob);
if(me==0 || me->totface==0) return;
-
+
mface= me->mface;
a= me->totface;
while(a--) {
- if(mface->flag & ME_HIDE) {
- mface->flag |= ME_FACE_SEL;
- mface->flag -= ME_HIDE;
+ if((mface->flag & ME_HIDE) == 0) {
+ if(unselected) {
+ if( (mface->flag & ME_FACE_SEL)==0) mface->flag |= ME_HIDE;
+ }
+ else {
+ if( (mface->flag & ME_FACE_SEL)) mface->flag |= ME_HIDE;
+ }
}
+ if(mface->flag & ME_HIDE) mface->flag &= ~ME_FACE_SEL;
+
mface++;
}
-
- paintface_flush_flags(OBACT);
+
+ paintface_flush_flags(ob);
}
-void paintface_hide(Scene *scene)
+
+void paintface_reveal(Object *ob)
{
Mesh *me;
MFace *mface;
int a;
- int shift=0, alt= 0; // XXX
-
- me= get_mesh(OBACT);
+
+ me= get_mesh(ob);
if(me==0 || me->totface==0) return;
-
- if(alt) {
- paintface_unhide(scene);
- return;
- }
-
+
mface= me->mface;
a= me->totface;
while(a--) {
- if(mface->flag & ME_HIDE);
- else {
- if(shift) {
- if( (mface->flag & ME_FACE_SEL)==0) mface->flag |= ME_HIDE;
- }
- else {
- if( (mface->flag & ME_FACE_SEL)) mface->flag |= ME_HIDE;
- }
+ if(mface->flag & ME_HIDE) {
+ mface->flag |= ME_FACE_SEL;
+ mface->flag -= ME_HIDE;
}
- if(mface->flag & ME_HIDE) mface->flag &= ~ME_FACE_SEL;
-
mface++;
}
-
- paintface_flush_flags(OBACT);
+
+ paintface_flush_flags(ob);
}
/* Set tface seams based on edge data, uses hash table to find seam edges. */
@@ -359,37 +353,49 @@ void paintface_deselect_all_visible(Object *ob, int action, short flush_flags)
me= get_mesh(ob);
if(me==0) return;
- if (action == SEL_TOGGLE) {
- action = SEL_SELECT;
-
+ if(action == SEL_INVERT) {
mface= me->mface;
a= me->totface;
while(a--) {
- if((mface->flag & ME_HIDE) == 0 && mface->flag & ME_FACE_SEL) {
- action = SEL_DESELECT;
- break;
+ if((mface->flag & ME_HIDE) == 0) {
+ mface->flag ^= ME_FACE_SEL;
}
mface++;
}
}
-
- mface= me->mface;
- a= me->totface;
- while(a--) {
- if((mface->flag & ME_HIDE) == 0) {
- switch (action) {
- case SEL_SELECT:
- mface->flag |= ME_FACE_SEL;
- break;
- case SEL_DESELECT:
- mface->flag &= ~ME_FACE_SEL;
- break;
- case SEL_INVERT:
- mface->flag ^= ME_FACE_SEL;
- break;
+ else {
+ if (action == SEL_TOGGLE) {
+ action = SEL_SELECT;
+
+ mface= me->mface;
+ a= me->totface;
+ while(a--) {
+ if((mface->flag & ME_HIDE) == 0 && mface->flag & ME_FACE_SEL) {
+ action = SEL_DESELECT;
+ break;
+ }
+ mface++;
}
}
- mface++;
+
+ mface= me->mface;
+ a= me->totface;
+ while(a--) {
+ if((mface->flag & ME_HIDE) == 0) {
+ switch (action) {
+ case SEL_SELECT:
+ mface->flag |= ME_FACE_SEL;
+ break;
+ case SEL_DESELECT:
+ mface->flag &= ~ME_FACE_SEL;
+ break;
+ case SEL_INVERT:
+ mface->flag ^= ME_FACE_SEL;
+ break;
+ }
+ }
+ mface++;
+ }
}
if(flush_flags) {
@@ -397,29 +403,6 @@ void paintface_deselect_all_visible(Object *ob, int action, short flush_flags)
}
}
-void paintface_select_swap(Scene *scene)
-{
- Mesh *me;
- MFace *mface;
- int a;
-
- me= get_mesh(OBACT);
- if(me==0) return;
-
- mface= me->mface;
- a= me->totface;
- while(a--) {
- if(mface->flag & ME_HIDE);
- else {
- if(mface->flag & ME_FACE_SEL) mface->flag &= ~ME_FACE_SEL;
- else mface->flag |= ME_FACE_SEL;
- }
- mface++;
- }
-
- paintface_flush_flags(OBACT);
-}
-
int paintface_minmax(Object *ob, float *min, float *max)
{
Mesh *me= get_mesh(ob);
diff --git a/source/blender/editors/mesh/editmesh.c b/source/blender/editors/mesh/editmesh.c
index 9376a21b23d..3843b782d87 100644
--- a/source/blender/editors/mesh/editmesh.c
+++ b/source/blender/editors/mesh/editmesh.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/mesh/editmesh_add.c b/source/blender/editors/mesh/editmesh_add.c
index f24c5d0d5db..08b2ff5c0ad 100644
--- a/source/blender/editors/mesh/editmesh_add.c
+++ b/source/blender/editors/mesh/editmesh_add.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c
index aba8fabc621..bc670c47940 100644
--- a/source/blender/editors/mesh/editmesh_lib.c
+++ b/source/blender/editors/mesh/editmesh_lib.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/mesh/editmesh_loop.c b/source/blender/editors/mesh/editmesh_loop.c
index ede7cf0b7c8..71b66d3e163 100644
--- a/source/blender/editors/mesh/editmesh_loop.c
+++ b/source/blender/editors/mesh/editmesh_loop.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c
index 6e27a81e3f0..e9c88d095b4 100644
--- a/source/blender/editors/mesh/editmesh_mods.c
+++ b/source/blender/editors/mesh/editmesh_mods.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -4064,179 +4064,6 @@ void MESH_OT_normals_make_consistent(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "inside", 0, "Inside", "");
}
-/* ********** ALIGN WITH VIEW **************** */
-
-static void editmesh_calc_selvert_center(EditMesh *em, float cent_r[3])
-{
- EditVert *eve;
- int nsel= 0;
-
- zero_v3(cent_r);
-
- for (eve= em->verts.first; eve; eve= eve->next) {
- if (eve->f & SELECT) {
- cent_r[0]+= eve->co[0];
- cent_r[1]+= eve->co[1];
- cent_r[2]+= eve->co[2];
- nsel++;
- }
- }
-
- if (nsel) {
- cent_r[0]/= nsel;
- cent_r[1]/= nsel;
- cent_r[2]/= nsel;
- }
-}
-
-static int mface_is_selected(MFace *mf)
-{
- return (!(mf->flag & ME_HIDE) && (mf->flag & ME_FACE_SEL));
-}
-
- /* XXX, code for both these functions should be abstract,
- * then unified, then written for other things (like objects,
- * which would use same as vertices method), then added
- * to interface! Hoera! - zr
- */
-static void faceselect_align_view_to_selected(View3D *v3d, RegionView3D *rv3d, Mesh *me, wmOperator *op, int axis)
-{
- float norm[3];
- int i, totselected = 0;
-
- norm[0]= norm[1]= norm[2]= 0.0;
- for (i=0; i<me->totface; i++) {
- MFace *mf= ((MFace*) me->mface) + i;
-
- if (mface_is_selected(mf)) {
- float *v1, *v2, *v3, fno[3];
-
- v1= me->mvert[mf->v1].co;
- v2= me->mvert[mf->v2].co;
- v3= me->mvert[mf->v3].co;
- if (mf->v4) {
- float *v4= me->mvert[mf->v4].co;
- normal_quad_v3( fno,v1, v2, v3, v4);
- } else {
- normal_tri_v3( fno,v1, v2, v3);
- }
-
- norm[0]+= fno[0];
- norm[1]+= fno[1];
- norm[2]+= fno[2];
-
- totselected++;
- }
- }
-
- if (totselected == 0)
- BKE_report(op->reports, RPT_WARNING, "No faces selected.");
- else
- view3d_align_axis_to_vector(v3d, rv3d, axis, norm);
-}
-
-/* helper for below, to survive non-uniform scaled objects */
-static void face_getnormal_obspace(Object *obedit, EditFace *efa, float *fno)
-{
- float vec[4][3];
-
- VECCOPY(vec[0], efa->v1->co);
- mul_mat3_m4_v3(obedit->obmat, vec[0]);
- VECCOPY(vec[1], efa->v2->co);
- mul_mat3_m4_v3(obedit->obmat, vec[1]);
- VECCOPY(vec[2], efa->v3->co);
- mul_mat3_m4_v3(obedit->obmat, vec[2]);
- if(efa->v4) {
- VECCOPY(vec[3], efa->v4->co);
- mul_mat3_m4_v3(obedit->obmat, vec[3]);
-
- normal_quad_v3( fno,vec[0], vec[1], vec[2], vec[3]);
- }
- else normal_tri_v3( fno,vec[0], vec[1], vec[2]);
-}
-
-
-static void editmesh_align_view_to_selected(Object *obedit, EditMesh *em, wmOperator *op, View3D *v3d, RegionView3D *rv3d, int axis)
-{
- int nselverts= EM_nvertices_selected(em);
- float norm[3]={0.0, 0.0, 0.0}; /* used for storing the mesh normal */
-
- if (nselverts==0) {
- BKE_report(op->reports, RPT_WARNING, "No faces or vertices selected.");
- }
- else if (EM_nfaces_selected(em)) {
- EditFace *efa;
- for (efa= em->faces.first; efa; efa= efa->next) {
- if (faceselectedAND(efa, SELECT)) {
- float fno[3];
-
- face_getnormal_obspace(obedit, efa, fno);
- norm[0]+= fno[0];
- norm[1]+= fno[1];
- norm[2]+= fno[2];
- }
- }
-
- view3d_align_axis_to_vector(v3d, rv3d, axis, norm);
- }
- else if (nselverts>2) {
- float cent[3];
- EditVert *eve, *leve= NULL;
-
- editmesh_calc_selvert_center(em, cent);
- for (eve= em->verts.first; eve; eve= eve->next) {
- if (eve->f & SELECT) {
- if (leve) {
- float tno[3];
- normal_tri_v3( tno,cent, leve->co, eve->co);
-
- /* XXX, fixme, should be flipped intp a
- * consistent direction. -zr
- */
- norm[0]+= tno[0];
- norm[1]+= tno[1];
- norm[2]+= tno[2];
- }
- leve= eve;
- }
- }
-
- mul_mat3_m4_v3(obedit->obmat, norm);
- view3d_align_axis_to_vector(v3d, rv3d, axis, norm);
- }
- else if (nselverts==2) { /* Align view to edge (or 2 verts) */
- EditVert *eve, *leve= NULL;
-
- for (eve= em->verts.first; eve; eve= eve->next) {
- if (eve->f & SELECT) {
- if (leve) {
- norm[0]= leve->co[0] - eve->co[0];
- norm[1]= leve->co[1] - eve->co[1];
- norm[2]= leve->co[2] - eve->co[2];
- break; /* we know there are only 2 verts so no need to keep looking */
- }
- leve= eve;
- }
- }
- mul_mat3_m4_v3(obedit->obmat, norm);
- view3d_align_axis_to_vector(v3d, rv3d, axis, norm);
- }
- else if (nselverts==1) { /* Align view to vert normal */
- EditVert *eve;
-
- for (eve= em->verts.first; eve; eve= eve->next) {
- if (eve->f & SELECT) {
- norm[0]= eve->no[0];
- norm[1]= eve->no[1];
- norm[2]= eve->no[2];
- break; /* we know this is the only selected vert, so no need to keep looking */
- }
- }
- mul_mat3_m4_v3(obedit->obmat, norm);
- view3d_align_axis_to_vector(v3d, rv3d, axis, norm);
- }
-}
-
/* **************** VERTEX DEFORMS *************** */
static int smooth_vertex(bContext *C, wmOperator *op)
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index 24c4e887ecc..d1ff06ec213 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -563,6 +563,29 @@ static void xsortvert_flag(bContext *C, int flag)
}
+static int mesh_vertices_sort_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ xsortvert_flag(C, SELECT);
+ return OPERATOR_FINISHED;
+}
+
+void MESH_OT_vertices_sort(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Vertex Sort";
+ ot->description= "Sort vertex order";
+ ot->idname= "MESH_OT_vertices_sort";
+
+ /* api callbacks */
+ ot->exec= mesh_vertices_sort_exec;
+
+ ot->poll= EM_view3d_poll; /* uses view relative X axis to sort verts */
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+
/* called from buttons */
static void hashvert_flag(EditMesh *em, int flag)
{
@@ -621,6 +644,31 @@ static void hashvert_flag(EditMesh *em, int flag)
}
+static int mesh_vertices_randomize_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ Object *obedit= CTX_data_edit_object(C);
+ EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
+ hashvert_flag(em, SELECT);
+ return OPERATOR_FINISHED;
+}
+
+void MESH_OT_vertices_randomize(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Vertex Randomize";
+ ot->description= "Randomize vertex order";
+ ot->idname= "MESH_OT_vertices_randomize";
+
+ /* api callbacks */
+ ot->exec= mesh_vertices_randomize_exec;
+
+ ot->poll= ED_operator_editmesh;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+
/* generic extern called extruder */
static void extrude_mesh(Object *obedit, EditMesh *em, wmOperator *op, short type)
{
@@ -5243,7 +5291,7 @@ void MESH_OT_blend_from_shape(wmOperatorType *ot)
prop= RNA_def_enum(ot->srna, "shape", shape_items, 0, "Shape", "Shape key to use for blending.");
RNA_def_enum_funcs(prop, shape_itemf);
RNA_def_float(ot->srna, "blend", 1.0f, -FLT_MAX, FLT_MAX, "Blend", "Blending factor.", -2.0f, 2.0f);
- RNA_def_boolean(ot->srna, "add", 1, "Add", "Add rather then blend between shapes.");
+ RNA_def_boolean(ot->srna, "add", 0, "Add", "Add rather then blend between shapes.");
}
/************************ Merge Operator *************************/
diff --git a/source/blender/editors/mesh/loopcut.c b/source/blender/editors/mesh/loopcut.c
index 933aed0a758..8001c4b1390 100644
--- a/source/blender/editors/mesh/loopcut.c
+++ b/source/blender/editors/mesh/loopcut.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c
index cfd1b006ece..f1123fdabcb 100644
--- a/source/blender/editors/mesh/mesh_data.c
+++ b/source/blender/editors/mesh/mesh_data.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/mesh/mesh_intern.h b/source/blender/editors/mesh/mesh_intern.h
index 1a9fdcea992..1ed9598e0b4 100644
--- a/source/blender/editors/mesh/mesh_intern.h
+++ b/source/blender/editors/mesh/mesh_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -205,6 +205,8 @@ int EdgeSlide(EditMesh *em, struct wmOperator *op, short immediate, float imperc
void MESH_OT_merge(struct wmOperatorType *ot);
void MESH_OT_subdivide(struct wmOperatorType *ot);
void MESH_OT_remove_doubles(struct wmOperatorType *ot);
+void MESH_OT_vertices_randomize(struct wmOperatorType *ot);
+void MESH_OT_vertices_sort(struct wmOperatorType *ot);
void MESH_OT_extrude(struct wmOperatorType *ot);
void MESH_OT_spin(struct wmOperatorType *ot);
void MESH_OT_screw(struct wmOperatorType *ot);
diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c
index f144ae60518..ef68f6e89a0 100644
--- a/source/blender/editors/mesh/mesh_ops.c
+++ b/source/blender/editors/mesh/mesh_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -86,6 +86,8 @@ void ED_operatortypes_mesh(void)
WM_operatortype_append(MESH_OT_fgon_make);
WM_operatortype_append(MESH_OT_duplicate);
WM_operatortype_append(MESH_OT_remove_doubles);
+ WM_operatortype_append(MESH_OT_vertices_sort);
+ WM_operatortype_append(MESH_OT_vertices_randomize);
WM_operatortype_append(MESH_OT_extrude);
WM_operatortype_append(MESH_OT_spin);
WM_operatortype_append(MESH_OT_screw);
@@ -146,6 +148,7 @@ void ED_operatortypes_mesh(void)
WM_operatortype_append(MESH_OT_select_nth);
}
+#if 0 /* UNUSED, remove? */
static int ED_operator_editmesh_face_select(bContext *C)
{
Object *obedit= CTX_data_edit_object(C);
@@ -157,6 +160,7 @@ static int ED_operator_editmesh_face_select(bContext *C)
}
return 0;
}
+#endif
void ED_operatormacros_mesh(void)
{
diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c
index 7c45e371a6e..a7d6cfee6c3 100644
--- a/source/blender/editors/mesh/meshtools.c
+++ b/source/blender/editors/mesh/meshtools.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/metaball/CMakeLists.txt b/source/blender/editors/metaball/CMakeLists.txt
index 249d9daedef..af3d25699ed 100644
--- a/source/blender/editors/metaball/CMakeLists.txt
+++ b/source/blender/editors/metaball/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/metaball/SConscript b/source/blender/editors/metaball/SConscript
index e526a1560cf..b1a1ce935db 100644
--- a/source/blender/editors/metaball/SConscript
+++ b/source/blender/editors/metaball/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../gpu'
+incs += ' ../../gpu ../../blenloader'
incs += ' ../../makesrna ../../render/extern/include #/intern/elbeem/extern'
env.BlenderLib ( 'bf_editors_metaball', sources, Split(incs), [], libtype=['core'], priority=[45] )
diff --git a/source/blender/editors/metaball/mball_edit.c b/source/blender/editors/metaball/mball_edit.c
index c3cacfc4c39..da0fb256572 100644
--- a/source/blender/editors/metaball/mball_edit.c
+++ b/source/blender/editors/metaball/mball_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -374,25 +374,15 @@ static int hide_metaelems_exec(bContext *C, wmOperator *op)
Object *obedit= CTX_data_edit_object(C);
MetaBall *mb= (MetaBall*)obedit->data;
MetaElem *ml;
- int hide_unselected= RNA_boolean_get(op->ptr, "unselected");
+ const int invert= RNA_boolean_get(op->ptr, "unselected") ? SELECT : 0;
ml= mb->editelems->first;
if(ml) {
- /* Hide unselected metaelems */
- if(hide_unselected) {
- while(ml){
- if(!(ml->flag & SELECT))
- ml->flag |= MB_HIDE;
- ml= ml->next;
- }
- /* Hide selected metaelems */
- } else {
- while(ml){
- if(ml->flag & SELECT)
- ml->flag |= MB_HIDE;
- ml= ml->next;
- }
+ while(ml){
+ if((ml->flag & SELECT) != invert)
+ ml->flag |= MB_HIDE;
+ ml= ml->next;
}
WM_event_add_notifier(C, NC_GEOM|ND_DATA, mb);
DAG_id_tag_update(obedit->data, 0);
diff --git a/source/blender/editors/metaball/mball_intern.h b/source/blender/editors/metaball/mball_intern.h
index 454b30eceef..36c263bde47 100644
--- a/source/blender/editors/metaball/mball_intern.h
+++ b/source/blender/editors/metaball/mball_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/metaball/mball_ops.c b/source/blender/editors/metaball/mball_ops.c
index 6ea094d95af..99d313e2a30 100644
--- a/source/blender/editors/metaball/mball_ops.c
+++ b/source/blender/editors/metaball/mball_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/CMakeLists.txt b/source/blender/editors/object/CMakeLists.txt
index 116cf30f911..47cb4d00938 100644
--- a/source/blender/editors/object/CMakeLists.txt
+++ b/source/blender/editors/object/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../gpu
../../ikplugin
diff --git a/source/blender/editors/object/SConscript b/source/blender/editors/object/SConscript
index e39190c0ef3..660643fbb0f 100644
--- a/source/blender/editors/object/SConscript
+++ b/source/blender/editors/object/SConscript
@@ -4,7 +4,7 @@ Import ('env')
sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
-incs += ' ../../windowmanager #/intern/guardedalloc'
+incs += ' ../../windowmanager #/intern/guardedalloc ../../blenloader'
incs += ' ../../makesrna ../../python ../../ikplugin'
incs += ' ../../render/extern/include ../../gpu' # for object_bake.c
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index 5b747326679..c74d532c95f 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c
index a5edc7d2598..e2b125fdbe7 100644
--- a/source/blender/editors/object/object_bake.c
+++ b/source/blender/editors/object/object_bake.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c
index 2358df37806..2f90d722240 100644
--- a/source/blender/editors/object/object_constraint.c
+++ b/source/blender/editors/object/object_constraint.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -198,6 +198,7 @@ static char *buildmenu_pyconstraints (Text *con_text, int *pyconindex)
}
#endif /* WITH_PYTHON */
+#if 0 // UNUSED, until pyconstraints are added back.
/* this callback gets called when the 'refresh' button of a pyconstraint gets pressed */
static void update_pyconstraint_cb (void *arg1, void *arg2)
{
@@ -211,6 +212,7 @@ static void update_pyconstraint_cb (void *arg1, void *arg2)
BPY_pyconstraint_update(owner, con);
#endif
}
+#endif // UNUSED
/* helper function for add_constriant - sets the last target for the active constraint */
static void set_constraint_nth_target (bConstraint *con, Object *target, const char subtarget[], int index)
diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c
index cb0b251c101..c07c770cf66 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -170,7 +170,7 @@ static int object_hide_view_set_exec(bContext *C, wmOperator *op)
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
short changed = 0;
- int unselected= RNA_boolean_get(op->ptr, "unselected");
+ const int unselected= RNA_boolean_get(op->ptr, "unselected");
CTX_DATA_BEGIN(C, Base*, base, visible_bases) {
if(!unselected) {
@@ -259,7 +259,7 @@ void OBJECT_OT_hide_render_clear(wmOperatorType *ot)
static int object_hide_render_set_exec(bContext *C, wmOperator *op)
{
- int unselected= RNA_boolean_get(op->ptr, "unselected");
+ const int unselected= RNA_boolean_get(op->ptr, "unselected");
CTX_DATA_BEGIN(C, Base*, base, visible_bases) {
if(!unselected) {
diff --git a/source/blender/editors/object/object_group.c b/source/blender/editors/object/object_group.c
index c26affc24a2..fa78c7f052f 100644
--- a/source/blender/editors/object/object_group.c
+++ b/source/blender/editors/object/object_group.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c
index 92a53b834b0..a0b6e28191c 100644
--- a/source/blender/editors/object/object_hook.c
+++ b/source/blender/editors/object/object_hook.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h
index ca441e8d634..8cb30cbe56c 100644
--- a/source/blender/editors/object/object_intern.h
+++ b/source/blender/editors/object/object_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/object_lattice.c b/source/blender/editors/object/object_lattice.c
index 375ea82c0b7..e4e23b05a7e 100644
--- a/source/blender/editors/object/object_lattice.c
+++ b/source/blender/editors/object/object_lattice.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index 0ea1c00100a..96953736f69 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c
index 6662d5b5f0a..6f854872aad 100644
--- a/source/blender/editors/object/object_ops.c
+++ b/source/blender/editors/object/object_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c
index ad79cbb262b..43057108b60 100644
--- a/source/blender/editors/object/object_relations.c
+++ b/source/blender/editors/object/object_relations.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c
index 5853a230719..7a92b16020e 100644
--- a/source/blender/editors/object/object_select.c
+++ b/source/blender/editors/object/object_select.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/object_shapekey.c b/source/blender/editors/object/object_shapekey.c
index d8e54a73500..8cd0ee81f21 100644
--- a/source/blender/editors/object/object_shapekey.c
+++ b/source/blender/editors/object/object_shapekey.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c
index cf5a5acf6ed..48d12982691 100644
--- a/source/blender/editors/object/object_transform.c
+++ b/source/blender/editors/object/object_transform.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c
index ab52d527561..b6baca5733f 100644
--- a/source/blender/editors/object/object_vgroup.c
+++ b/source/blender/editors/object/object_vgroup.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/physics/CMakeLists.txt b/source/blender/editors/physics/CMakeLists.txt
index 76419dbb505..a0aa3e489dd 100644
--- a/source/blender/editors/physics/CMakeLists.txt
+++ b/source/blender/editors/physics/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/physics/SConscript b/source/blender/editors/physics/SConscript
index fcf94eae994..274819c918c 100644
--- a/source/blender/editors/physics/SConscript
+++ b/source/blender/editors/physics/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../gpu'
+incs += ' ../../gpu ../../blenloader'
incs += ' ../../makesrna ../../render/extern/include #/intern/elbeem/extern'
defs = ''
diff --git a/source/blender/editors/physics/particle_boids.c b/source/blender/editors/physics/particle_boids.c
index 90e387a79c2..f659c33b5e1 100644
--- a/source/blender/editors/physics/particle_boids.c
+++ b/source/blender/editors/physics/particle_boids.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/physics/particle_object.c b/source/blender/editors/physics/particle_object.c
index 6078f05ebd1..efd44c68db6 100644
--- a/source/blender/editors/physics/particle_object.c
+++ b/source/blender/editors/physics/particle_object.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c
index 916866d7a70..93b0ca49915 100644
--- a/source/blender/editors/physics/physics_fluid.c
+++ b/source/blender/editors/physics/physics_fluid.c
@@ -1,4 +1,4 @@
-/**
+/*
* fluidsim.c
*
* $Id$
@@ -643,7 +643,7 @@ static int fluid_init_filepaths(Object *fsDomain, char *targetDir, char *targetF
BLI_path_abs(targetDir, G.main->name); // fixed #frame-no
// .tmp: dont overwrite/delete original file
- BLI_snprintf(targetFile, sizeof(targetFile), "%s%s.tmp", targetDir, suffixConfig);
+ BLI_snprintf(targetFile, FILE_MAXDIR+FILE_MAXFILE, "%s%s.tmp", targetDir, suffixConfig);
// make sure all directories exist
// as the bobjs use the same dir, this only needs to be checked
@@ -664,13 +664,13 @@ static int fluid_init_filepaths(Object *fsDomain, char *targetDir, char *targetF
char blendFile[FILE_MAXDIR+FILE_MAXFILE];
// invalid dir, reset to current/previous
- BLI_strncpy(blendDir, G.main->name, sizeof(blendDir));
+ BLI_strncpy(blendDir, G.main->name, FILE_MAXDIR+FILE_MAXFILE);
BLI_splitdirstring(blendDir, blendFile);
- BLI_replace_extension(blendFile, sizeof(blendFile), ""); /* strip .blend */
+ BLI_replace_extension(blendFile, FILE_MAXDIR+FILE_MAXFILE, ""); /* strip .blend */
- BLI_snprintf(newSurfdataPath, sizeof(newSurfdataPath) ,"//fluidsimdata/%s_%s_", blendFile, fsDomain->id.name);
+ BLI_snprintf(newSurfdataPath, FILE_MAXDIR+FILE_MAXFILE ,"//fluidsimdata/%s_%s_", blendFile, fsDomain->id.name);
- BLI_snprintf(debugStrBuffer, sizeof(debugStrBuffer), "fluidsimBake::error - warning resetting output dir to '%s'\n", newSurfdataPath);
+ BLI_snprintf(debugStrBuffer, 256, "fluidsimBake::error - warning resetting output dir to '%s'\n", newSurfdataPath);
elbeemDebugOut(debugStrBuffer);
outStringsChanged=1;
}
@@ -952,7 +952,7 @@ int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain)
/* ******** start writing / exporting ******** */
// use .tmp, dont overwrite/delete original file
- BLI_snprintf(targetFile, sizeof(targetFile), "%s%s.tmp", targetDir, suffixConfig);
+ BLI_snprintf(targetFile, 240, "%s%s.tmp", targetDir, suffixConfig);
// make sure these directories exist as well
if(outStringsChanged) {
@@ -980,7 +980,7 @@ int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain)
fsset->aniFrameTime = channels->aniFrameTime;
fsset->noOfFrames = noFrames; // is otherwise subtracted in parser
- BLI_snprintf(targetFile, sizeof(targetFile), "%s%s", targetDir, suffixSurface);
+ BLI_snprintf(targetFile, 240, "%s%s", targetDir, suffixSurface);
// defaults for compressibility and adaptive grids
fsset->gstar = domainSettings->gstar;
@@ -990,7 +990,7 @@ int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain)
fsset->surfaceSmoothing = domainSettings->surfaceSmoothing;
fsset->surfaceSubdivs = domainSettings->surfaceSubdivs;
fsset->farFieldSize = domainSettings->farFieldSize;
- BLI_strncpy(fsset->outputPath, targetFile, sizeof(fsset->outputPath));
+ BLI_strncpy(fsset->outputPath, targetFile, 240);
// domain channels
fsset->channelSizeFrameTime =
diff --git a/source/blender/editors/physics/physics_ops.c b/source/blender/editors/physics/physics_ops.c
index 2b7f8e9d5a2..7d2b872038f 100644
--- a/source/blender/editors/physics/physics_ops.c
+++ b/source/blender/editors/physics/physics_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/render/render_intern.h b/source/blender/editors/render/render_intern.h
index 4339d07c7a9..24831cebad7 100644
--- a/source/blender/editors/render/render_intern.h
+++ b/source/blender/editors/render/render_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c
index 17d05bed24a..52280fa8e6a 100644
--- a/source/blender/editors/render/render_internal.c
+++ b/source/blender/editors/render/render_internal.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -68,7 +68,7 @@
static ScrArea *biggest_area(bContext *C);
static ScrArea *biggest_non_image_area(bContext *C);
-static ScrArea *find_area_showing_r_result(bContext *C);
+static ScrArea *find_area_showing_r_result(bContext *C, wmWindow **win);
static ScrArea *find_area_image_empty(bContext *C);
/* called inside thread! */
@@ -232,9 +232,13 @@ void screen_set_image_output(bContext *C, int mx, int my)
}
if(!sa) {
- sa= find_area_showing_r_result(C);
+ sa= find_area_showing_r_result(C, &win);
if(sa==NULL)
sa= find_area_image_empty(C);
+
+ /* if area found in other window, we make that one show in front */
+ if(win && win!=CTX_wm_window(C))
+ wm_window_raise(win);
if(sa==NULL) {
/* find largest open non-image area */
@@ -336,16 +340,15 @@ static ScrArea *biggest_area(bContext *C)
}
-static ScrArea *find_area_showing_r_result(bContext *C)
+static ScrArea *find_area_showing_r_result(bContext *C, wmWindow **win)
{
wmWindowManager *wm= CTX_wm_manager(C);
- wmWindow *win;
ScrArea *sa = NULL;
SpaceImage *sima;
/* find an imagewindow showing render result */
- for(win=wm->windows.first; win; win=win->next) {
- for(sa=win->screen->areabase.first; sa; sa= sa->next) {
+ for(*win=wm->windows.first; *win; *win= (*win)->next) {
+ for(sa= (*win)->screen->areabase.first; sa; sa= sa->next) {
if(sa->spacetype==SPACE_IMAGE) {
sima= sa->spacedata.first;
if(sima->image && sima->image->type==IMA_TYPE_R_RESULT)
@@ -355,7 +358,7 @@ static ScrArea *find_area_showing_r_result(bContext *C)
if(sa)
break;
}
-
+
return sa;
}
@@ -800,7 +803,7 @@ void RENDER_OT_render(wmOperatorType *ot)
ot->modal= screen_render_modal;
ot->exec= screen_render_exec;
- ot->poll= ED_operator_screenactive;
+ /*ot->poll= ED_operator_screenactive;*/ /* this isnt needed, causes failer in background mode */
RNA_def_boolean(ot->srna, "animation", 0, "Animation", "Render files from the animation range of this scene");
RNA_def_boolean(ot->srna, "write_still", 0, "Write Image", "Save rendered the image to the output path (used only when animation is disabled)");
@@ -862,18 +865,19 @@ void RENDER_OT_view_cancel(struct wmOperatorType *ot)
static int render_view_show_invoke(bContext *C, wmOperator *UNUSED(unused), wmEvent *event)
{
- ScrArea *sa= find_area_showing_r_result(C);
-
- /* test if we have a temp screen active */
- if(CTX_wm_window(C)->screen->temp) {
- wm_window_lower(CTX_wm_window(C));
+ wmWindow *wincur = CTX_wm_window(C);
+
+ /* test if we have currently a temp screen active */
+ if(wincur->screen->temp) {
+ wm_window_lower(wincur);
}
else {
- /* is there another window? */
- wmWindow *win;
+ wmWindow *win, *winshow;
+ ScrArea *sa= find_area_showing_r_result(C, &winshow);
+ /* is there another window showing result? */
for(win= CTX_wm_manager(C)->windows.first; win; win= win->next) {
- if(win->screen->temp) {
+ if(win->screen->temp || (win==winshow && winshow!=wincur)) {
wm_window_raise(win);
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c
index 1f182723bc8..68bf4fa9b5b 100644
--- a/source/blender/editors/render/render_opengl.c
+++ b/source/blender/editors/render/render_opengl.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/render/render_ops.c b/source/blender/editors/render/render_ops.c
index 62f573c031f..c0995785d05 100644
--- a/source/blender/editors/render/render_ops.c
+++ b/source/blender/editors/render/render_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c
index d635a799ec1..67a0773199f 100644
--- a/source/blender/editors/render/render_preview.c
+++ b/source/blender/editors/render/render_preview.c
@@ -68,6 +68,7 @@
#include "BKE_main.h"
#include "BKE_material.h"
#include "BKE_node.h"
+#include "BKE_idprop.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -286,6 +287,7 @@ void ED_preview_init_dbase(void)
BlendFileData *bfd;
extern int datatoc_preview_blend_size;
extern char datatoc_preview_blend[];
+ const int fileflags= G.fileflags;
G.fileflags |= G_FILE_NO_UI;
bfd= BLO_read_from_memory(datatoc_preview_blend, datatoc_preview_blend_size, NULL);
@@ -294,7 +296,7 @@ void ED_preview_init_dbase(void)
MEM_freeN(bfd);
}
- G.fileflags &= ~G_FILE_NO_UI;
+ G.fileflags= fileflags;
}
void ED_preview_free_dbase(void)
@@ -1053,6 +1055,14 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
/* unassign the pointers, reset vars */
preview_prepare_scene(sp->scene, NULL, GS(id->name), sp);
+
+ /* XXX bad exception, end-exec is not being called in render, because it uses local main */
+ if(idtype == ID_TE) {
+ Tex *tex= (Tex *)id;
+ if(tex->use_nodes && tex->nodetree)
+ ntreeEndExecTree(tex->nodetree);
+ }
+
}
/* runs inside thread for material and icons */
@@ -1078,12 +1088,19 @@ static void shader_preview_free(void *customdata)
ShaderPreview *sp= customdata;
if(sp->matcopy) {
+ struct IDProperty *properties;
/* node previews */
shader_preview_updatejob(sp);
/* get rid of copied material */
BLI_remlink(&pr_main->mat, sp->matcopy);
free_material(sp->matcopy);
+
+ properties= IDP_GetProperties((ID *)sp->matcopy, FALSE);
+ if (properties) {
+ IDP_FreeProperty(properties);
+ MEM_freeN(properties);
+ }
MEM_freeN(sp->matcopy);
}
diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c
index 95523cba85e..5f9aa54e9db 100644
--- a/source/blender/editors/render/render_shading.c
+++ b/source/blender/editors/render/render_shading.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/screen/CMakeLists.txt b/source/blender/editors/screen/CMakeLists.txt
index 7c43d506a89..f276cc30c0f 100644
--- a/source/blender/editors/screen/CMakeLists.txt
+++ b/source/blender/editors/screen/CMakeLists.txt
@@ -23,6 +23,7 @@ set(INC
../include
../../blenfont
../../blenkernel
+ ../../blenloader
../../blenlib
../../imbuf
../../makesdna
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index 4784f19012e..4ddb5d059e4 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -1284,6 +1284,9 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char *
panel->labelofs= xco - triangle;
panel->layout= NULL;
}
+ else {
+ panel->labelofs= 0;
+ }
if(open) {
short panelContext;
diff --git a/source/blender/editors/screen/glutil.c b/source/blender/editors/screen/glutil.c
index a39039b254f..ce96df5d3b1 100644
--- a/source/blender/editors/screen/glutil.c
+++ b/source/blender/editors/screen/glutil.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/screen/screen_context.c b/source/blender/editors/screen/screen_context.c
index 931cc06d6cd..754d75fe9a5 100644
--- a/source/blender/editors/screen/screen_context.c
+++ b/source/blender/editors/screen/screen_context.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index 65ccadacf3c..4f92cec39af 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/screen/screen_intern.h b/source/blender/editors/screen/screen_intern.h
index 5f0d264ea4b..50a3159644d 100644
--- a/source/blender/editors/screen/screen_intern.h
+++ b/source/blender/editors/screen/screen_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index 33c1fce4872..75f28b6541f 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -3075,6 +3075,7 @@ void ED_operatortypes_screen(void)
/* tools shared by more space types */
WM_operatortype_append(ED_OT_undo);
+ WM_operatortype_append(ED_OT_undo_push);
WM_operatortype_append(ED_OT_redo);
}
diff --git a/source/blender/editors/screen/screendump.c b/source/blender/editors/screen/screendump.c
index 1fbcd7e61fd..7ac73eb8c14 100644
--- a/source/blender/editors/screen/screendump.c
+++ b/source/blender/editors/screen/screendump.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/sculpt_paint/CMakeLists.txt b/source/blender/editors/sculpt_paint/CMakeLists.txt
index fd527dd1ffc..a22ed87c182 100644
--- a/source/blender/editors/sculpt_paint/CMakeLists.txt
+++ b/source/blender/editors/sculpt_paint/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../imbuf
../../gpu
../../blenlib
diff --git a/source/blender/editors/sculpt_paint/SConscript b/source/blender/editors/sculpt_paint/SConscript
index 2902b21fff1..90b56ded2cd 100644
--- a/source/blender/editors/sculpt_paint/SConscript
+++ b/source/blender/editors/sculpt_paint/SConscript
@@ -8,7 +8,7 @@ defs = []
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
incs += ' ../../render/extern/include'
-incs += ' ../../gpu ../../makesrna'
+incs += ' ../../gpu ../../makesrna ../../blenloader'
if env['OURPLATFORM'] == 'linux2':
cflags='-pthread'
diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c
index 7f247b9e815..44dbe447d3e 100644
--- a/source/blender/editors/sculpt_paint/paint_image.c
+++ b/source/blender/editors/sculpt_paint/paint_image.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* imagepaint.c
*
diff --git a/source/blender/editors/sculpt_paint/paint_intern.h b/source/blender/editors/sculpt_paint/paint_intern.h
index d0aa0c29c4d..e0a09184e28 100644
--- a/source/blender/editors/sculpt_paint/paint_intern.h
+++ b/source/blender/editors/sculpt_paint/paint_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -114,6 +114,9 @@ void BRUSH_OT_curve_preset(struct wmOperatorType *ot);
void PAINT_OT_face_select_linked(struct wmOperatorType *ot);
void PAINT_OT_face_select_linked_pick(struct wmOperatorType *ot);
void PAINT_OT_face_select_all(struct wmOperatorType *ot);
+void PAINT_OT_face_select_inverse(struct wmOperatorType *ot);
+void PAINT_OT_face_select_hide(struct wmOperatorType *ot);
+void PAINT_OT_face_select_reveal(struct wmOperatorType *ot);
int facemask_paint_poll(struct bContext *C);
diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c
index 35111afb430..979b6508b16 100644
--- a/source/blender/editors/sculpt_paint/paint_ops.c
+++ b/source/blender/editors/sculpt_paint/paint_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -224,6 +224,9 @@ void ED_operatortypes_paint(void)
WM_operatortype_append(PAINT_OT_face_select_linked);
WM_operatortype_append(PAINT_OT_face_select_linked_pick);
WM_operatortype_append(PAINT_OT_face_select_all);
+ WM_operatortype_append(PAINT_OT_face_select_inverse);
+ WM_operatortype_append(PAINT_OT_face_select_hide);
+ WM_operatortype_append(PAINT_OT_face_select_reveal);
}
@@ -414,7 +417,11 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
keymap->poll= facemask_paint_poll;
WM_keymap_add_item(keymap, "PAINT_OT_face_select_all", AKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "PAINT_OT_face_select_inverse", IKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "PAINT_OT_face_select_hide", HKEY, KM_PRESS, 0, 0);
+ RNA_boolean_set(WM_keymap_add_item(keymap, "PAINT_OT_face_select_hide", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "unselected", 1);
+ WM_keymap_add_item(keymap, "PAINT_OT_face_select_reveal", HKEY, KM_PRESS, KM_ALT, 0);
+
WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked_pick", LKEY, KM_PRESS, 0, 0);
-
}
diff --git a/source/blender/editors/sculpt_paint/paint_undo.c b/source/blender/editors/sculpt_paint/paint_undo.c
index 6425e2d0494..49fc1f01869 100644
--- a/source/blender/editors/sculpt_paint/paint_undo.c
+++ b/source/blender/editors/sculpt_paint/paint_undo.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* Undo system for painting and sculpting.
diff --git a/source/blender/editors/sculpt_paint/paint_utils.c b/source/blender/editors/sculpt_paint/paint_utils.c
index 2962ea7e51b..000db4c28f2 100644
--- a/source/blender/editors/sculpt_paint/paint_utils.c
+++ b/source/blender/editors/sculpt_paint/paint_utils.c
@@ -350,3 +350,69 @@ void PAINT_OT_face_select_all(wmOperatorType *ot)
WM_operator_properties_select_all(ot);
}
+
+static int face_select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ Object *ob= CTX_data_active_object(C);
+ paintface_deselect_all_visible(ob, SEL_INVERT, TRUE);
+ ED_region_tag_redraw(CTX_wm_region(C));
+ return OPERATOR_FINISHED;
+}
+
+
+void PAINT_OT_face_select_inverse(wmOperatorType *ot)
+{
+ ot->name= "Face Select Invert";
+ ot->description= "Invert selection of faces";
+ ot->idname= "PAINT_OT_face_select_inverse";
+
+ ot->exec= face_select_inverse_exec;
+ ot->poll= facemask_paint_poll;
+
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+static int face_select_hide_exec(bContext *C, wmOperator *op)
+{
+ const int unselected= RNA_boolean_get(op->ptr, "unselected");
+ Object *ob= CTX_data_active_object(C);
+ paintface_hide(ob, unselected);
+ ED_region_tag_redraw(CTX_wm_region(C));
+ return OPERATOR_FINISHED;
+}
+
+void PAINT_OT_face_select_hide(wmOperatorType *ot)
+{
+ ot->name= "Face Select Hide";
+ ot->description= "Hide selected faces";
+ ot->idname= "PAINT_OT_face_select_hide";
+
+ ot->exec= face_select_hide_exec;
+ ot->poll= facemask_paint_poll;
+
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected objects.");
+}
+
+static int face_select_reveal_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ Object *ob= CTX_data_active_object(C);
+ paintface_reveal(ob);
+ ED_region_tag_redraw(CTX_wm_region(C));
+ return OPERATOR_FINISHED;
+}
+
+void PAINT_OT_face_select_reveal(wmOperatorType *ot)
+{
+ ot->name= "Face Select Reveal";
+ ot->description= "Reveal hidden faces";
+ ot->idname= "PAINT_OT_face_select_reveal";
+
+ ot->exec= face_select_reveal_exec;
+ ot->poll= facemask_paint_poll;
+
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected objects.");
+}
diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index 575b0012c6c..09c70b70368 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c
index fa8d61d73de..7505fdb0ecf 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -109,6 +109,16 @@ void ED_sculpt_modifiers_changed(Object *ob)
}
sculpt_free_deformMats(ob->sculpt);
+ } else {
+ PBVHNode **nodes;
+ int n, totnode;
+
+ BLI_pbvh_search_gather(ss->pbvh, NULL, NULL, &nodes, &totnode);
+
+ for(n = 0; n < totnode; n++)
+ BLI_pbvh_node_mark_update(nodes[n]);
+
+ MEM_freeN(nodes);
}
}
@@ -1509,7 +1519,7 @@ static void do_layer_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int
Brush *brush = paint_brush(&sd->paint);
float bstrength= ss->cache->bstrength;
float area_normal[3], offset[3];
- float lim= ss->cache->radius / 4;
+ float lim= brush->height;
int n;
if(bstrength < 0)
@@ -1542,15 +1552,15 @@ static void do_layer_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int
sculpt_brush_test_init(ss, &test);
BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
- if(sculpt_brush_test(&test, vd.co)) {
- const float fade = bstrength*ss->cache->radius*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, area_normal, vd.no, vd.fno);
+ if(sculpt_brush_test(&test, origco[vd.i])) {
+ const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, area_normal, vd.no, vd.fno);
float *disp= &layer_disp[vd.i];
float val[3];
*disp+= fade;
/* Don't let the displacement go past the limit */
- if((lim < 0 && *disp < lim) || (lim > 0 && *disp > lim))
+ if((lim < 0 && *disp < lim) || (lim >= 0 && *disp > lim))
*disp = lim;
mul_v3_v3fl(val, offset, *disp);
@@ -2459,12 +2469,12 @@ static void sculpt_flush_stroke_deform(Sculpt *sd, SculptSession *ss)
int n, totnode;
PBVHNode** nodes;
- PBVHVertexIter vd;
BLI_pbvh_search_gather(ss->pbvh, NULL, NULL, &nodes, &totnode);
#pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
for (n= 0; n < totnode; n++) {
+ PBVHVertexIter vd;
BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
sculpt_flush_pbvhvert_deform(ss, &vd);
diff --git a/source/blender/editors/sound/CMakeLists.txt b/source/blender/editors/sound/CMakeLists.txt
index c8bad32bc35..c2f7707309b 100644
--- a/source/blender/editors/sound/CMakeLists.txt
+++ b/source/blender/editors/sound/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/sound/SConscript b/source/blender/editors/sound/SConscript
index 8010dd49c57..e17bccdadd9 100644
--- a/source/blender/editors/sound/SConscript
+++ b/source/blender/editors/sound/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc'
-incs += ' ../../makesrna'
+incs += ' ../../makesrna ../../blenloader'
incs += ' #/intern/audaspace/intern'
defs = []
diff --git a/source/blender/editors/sound/sound_intern.h b/source/blender/editors/sound/sound_intern.h
index 455c1896c7c..4cc91c9fec4 100644
--- a/source/blender/editors/sound/sound_intern.h
+++ b/source/blender/editors/sound/sound_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c
index df554efd979..2d8f1dc240c 100644
--- a/source/blender/editors/sound/sound_ops.c
+++ b/source/blender/editors/sound/sound_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_action/CMakeLists.txt b/source/blender/editors/space_action/CMakeLists.txt
index e0621a277ae..9280e4d0e7f 100644
--- a/source/blender/editors/space_action/CMakeLists.txt
+++ b/source/blender/editors/space_action/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/space_action/SConscript b/source/blender/editors/space_action/SConscript
index 2e9a79db04a..0fee8ff68ab 100644
--- a/source/blender/editors/space_action/SConscript
+++ b/source/blender/editors/space_action/SConscript
@@ -4,6 +4,6 @@ Import ('env')
sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
-incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
+incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include ../../blenloader'
env.BlenderLib ( 'bf_editors_space_action', sources, Split(incs), [], libtype=['core'], priority=[40] )
diff --git a/source/blender/editors/space_action/action_draw.c b/source/blender/editors/space_action/action_draw.c
index 7bd326bac68..040c5ebaf47 100644
--- a/source/blender/editors/space_action/action_draw.c
+++ b/source/blender/editors/space_action/action_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c
index 852927898b9..4f7bddc5c40 100644
--- a/source/blender/editors/space_action/action_edit.c
+++ b/source/blender/editors/space_action/action_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -121,7 +121,7 @@ static int act_new_exec(bContext *C, wmOperator *UNUSED(op))
void ACTION_OT_new (wmOperatorType *ot)
{
/* identifiers */
- ot->name= "New";
+ ot->name= "New Action";
ot->idname= "ACTION_OT_new";
ot->description= "Create new action";
@@ -135,6 +135,88 @@ void ACTION_OT_new (wmOperatorType *ot)
}
/* ************************************************************************** */
+/* POSE MARKERS STUFF */
+
+/* *************************** Localise Markers ***************************** */
+
+/* ensure that there is:
+ * 1) an active action editor
+ * 2) that the mode will have an active action available
+ * 3) that the set of markers being shown are the scene markers, not the list we're merging
+ * 4) that there are some selected markers
+ */
+static int act_markers_make_local_poll(bContext *C)
+{
+ SpaceAction *sact = CTX_wm_space_action(C);
+
+ /* 1) */
+ if (sact == NULL)
+ return 0;
+
+ /* 2) */
+ if (ELEM(sact->mode, SACTCONT_ACTION, SACTCONT_SHAPEKEY) == 0)
+ return 0;
+ if (sact->action == NULL)
+ return 0;
+
+ /* 3) */
+ if (sact->flag & SACTION_POSEMARKERS_SHOW)
+ return 0;
+
+ /* 4) */
+ return ED_markers_get_first_selected(ED_context_get_markers(C)) != NULL;
+}
+
+static int act_markers_make_local_exec (bContext *C, wmOperator *op)
+{
+ ListBase *markers = ED_context_get_markers(C);
+
+ SpaceAction *sact = CTX_wm_space_action(C);
+ bAction *act = (sact)? sact->action : NULL;
+
+ TimeMarker *marker, *markern=NULL;
+
+ /* sanity checks */
+ if (ELEM(NULL, markers, act))
+ return OPERATOR_CANCELLED;
+
+ /* migrate markers */
+ for (marker = markers->first; marker; marker = markern) {
+ markern = marker->next;
+
+ /* move if marker is selected */
+ if (marker->flag & SELECT) {
+ BLI_remlink(markers, marker);
+ BLI_addtail(&act->markers, marker);
+ }
+ }
+
+ /* now enable the "show posemarkers only" setting, so that we can see that something did happen */
+ sact->flag |= SACTION_POSEMARKERS_SHOW;
+
+ /* notifiers - both sets, as this change affects both */
+ WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_MARKERS, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void ACTION_OT_markers_make_local (wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Make Markers Local";
+ ot->idname= "ACTION_OT_markers_make_local";
+ ot->description= "Move selected scene markers to the active Action as local 'pose' markers";
+
+ /* callbacks */
+ ot->exec = act_markers_make_local_exec;
+ ot->poll = act_markers_make_local_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+/* ************************************************************************** */
/* KEYFRAME-RANGE STUFF */
/* *************************** Calculate Range ************************** */
diff --git a/source/blender/editors/space_action/action_intern.h b/source/blender/editors/space_action/action_intern.h
index b483a3edbdc..f9a5ac1093d 100644
--- a/source/blender/editors/space_action/action_intern.h
+++ b/source/blender/editors/space_action/action_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -104,6 +104,8 @@ void ACTION_OT_mirror(struct wmOperatorType *ot);
void ACTION_OT_new(struct wmOperatorType *ot);
+void ACTION_OT_markers_make_local(struct wmOperatorType *ot);
+
/* defines for snap keyframes
* NOTE: keep in sync with eEditKeyframes_Snap (in ED_keyframes_edit.h)
*/
diff --git a/source/blender/editors/space_action/action_ops.c b/source/blender/editors/space_action/action_ops.c
index 3b448becf8b..e82c26488b5 100644
--- a/source/blender/editors/space_action/action_ops.c
+++ b/source/blender/editors/space_action/action_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -79,6 +79,8 @@ void action_operatortypes(void)
WM_operatortype_append(ACTION_OT_previewrange_set);
WM_operatortype_append(ACTION_OT_view_all);
+
+ WM_operatortype_append(ACTION_OT_markers_make_local);
}
/* ************************** registration - keymaps **********************************/
diff --git a/source/blender/editors/space_action/action_select.c b/source/blender/editors/space_action/action_select.c
index 639ed372c67..b9662a8b8e5 100644
--- a/source/blender/editors/space_action/action_select.c
+++ b/source/blender/editors/space_action/action_select.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c
index 3f3611d75f5..3e25df634e5 100644
--- a/source/blender/editors/space_action/space_action.c
+++ b/source/blender/editors/space_action/space_action.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -193,7 +193,7 @@ static void action_main_area_draw(const bContext *C, ARegion *ar)
/* markers */
UI_view2d_view_orthoSpecial(ar, v2d, 1);
- flag = (saction->flag & SACTION_POSEMARKERS_SHOW)? DRAW_MARKERS_LOCAL : 0;
+ flag = (ac.markers && (ac.markers != &ac.scene->markers))? DRAW_MARKERS_LOCAL : 0;
draw_markers_time(C, flag);
/* preview range */
diff --git a/source/blender/editors/space_api/CMakeLists.txt b/source/blender/editors/space_api/CMakeLists.txt
index 93f256cf3da..22319dbb26e 100644
--- a/source/blender/editors/space_api/CMakeLists.txt
+++ b/source/blender/editors/space_api/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/space_api/SConscript b/source/blender/editors/space_api/SConscript
index c499d5865ec..d6a763a78ff 100644
--- a/source/blender/editors/space_api/SConscript
+++ b/source/blender/editors/space_api/SConscript
@@ -3,7 +3,7 @@ Import ('env')
sources = env.Glob('*.c')
-incs = '../include ../../blenlib ../../blenkernel ../../makesdna'
+incs = '../include ../../blenlib ../../blenkernel ../../blenloader ../../makesdna'
incs += ' ../../windowmanager ../../python ../../makesrna'
incs += ' #/intern/guardedalloc #/extern/glew/include'
diff --git a/source/blender/editors/space_api/space.c b/source/blender/editors/space_api/space.c
index e862358c465..bfe47f6e35a 100644
--- a/source/blender/editors/space_api/space.c
+++ b/source/blender/editors/space_api/space.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c
index a00b5a50229..bd19ff5e1b1 100644
--- a/source/blender/editors/space_api/spacetypes.c
+++ b/source/blender/editors/space_api/spacetypes.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_buttons/CMakeLists.txt b/source/blender/editors/space_buttons/CMakeLists.txt
index 8a55567c4c0..94b3f1c3926 100644
--- a/source/blender/editors/space_buttons/CMakeLists.txt
+++ b/source/blender/editors/space_buttons/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/space_buttons/SConscript b/source/blender/editors/space_buttons/SConscript
index 31438b641e0..a4270f1f59a 100644
--- a/source/blender/editors/space_buttons/SConscript
+++ b/source/blender/editors/space_buttons/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../makesrna ../../render/extern/include'
+incs += ' ../../makesrna ../../render/extern/include ../../blenloader'
defs = []
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index dda5887aef0..486cc462584 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_buttons/buttons_header.c b/source/blender/editors/space_buttons/buttons_header.c
index bfc5a27883d..cf0ae07d891 100644
--- a/source/blender/editors/space_buttons/buttons_header.c
+++ b/source/blender/editors/space_buttons/buttons_header.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_buttons/buttons_intern.h b/source/blender/editors/space_buttons/buttons_intern.h
index 407454d4347..dda64ae1b40 100644
--- a/source/blender/editors/space_buttons/buttons_intern.h
+++ b/source/blender/editors/space_buttons/buttons_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_buttons/buttons_ops.c b/source/blender/editors/space_buttons/buttons_ops.c
index b7c9bdde0e8..b2edff87f9c 100644
--- a/source/blender/editors/space_buttons/buttons_ops.c
+++ b/source/blender/editors/space_buttons/buttons_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c
index afb8acb087b..b6feb4ee1d6 100644
--- a/source/blender/editors/space_buttons/space_buttons.c
+++ b/source/blender/editors/space_buttons/space_buttons.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_console/console_draw.c b/source/blender/editors/space_console/console_draw.c
index ba9993cfe60..ffb6bdb1f57 100644
--- a/source/blender/editors/space_console/console_draw.c
+++ b/source/blender/editors/space_console/console_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -233,18 +233,6 @@ int console_textview_height(struct SpaceConsole *sc, struct ARegion *ar)
return console_textview_main__internal(sc, ar, 0, mval, NULL, NULL);
}
-void *console_text_pick(struct SpaceConsole *sc, struct ARegion *ar, int mouse_y)
-{
- void *mouse_pick= NULL;
- int mval[2];
-
- mval[0]= 0;
- mval[1]= mouse_y;
-
- console_textview_main__internal(sc, ar, 0, mval, &mouse_pick, NULL);
- return (void *)mouse_pick;
-}
-
int console_char_pick(struct SpaceConsole *sc, struct ARegion *ar, int mval[2])
{
int pos_pick= 0;
diff --git a/source/blender/editors/space_console/console_intern.h b/source/blender/editors/space_console/console_intern.h
index 72eac14c2ca..acdd7e33a8e 100644
--- a/source/blender/editors/space_console/console_intern.h
+++ b/source/blender/editors/space_console/console_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -34,7 +34,6 @@ struct bContext;
/* console_draw.c */
void console_textview_main(struct SpaceConsole *sc, struct ARegion *ar);
int console_textview_height(struct SpaceConsole *sc, struct ARegion *ar); /* needed to calculate the scrollbar */
-void *console_text_pick(struct SpaceConsole *sc, struct ARegion *ar, int mouse_y); /* needed for selection */
int console_char_pick(struct SpaceConsole *sc, struct ARegion *ar, int mval[2]);
void console_scrollback_prompt_begin(struct SpaceConsole *sc, ConsoleLine *cl_dummy);
diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c
index 3a7c306ac50..b3de56995bd 100644
--- a/source/blender/editors/space_console/console_ops.c
+++ b/source/blender/editors/space_console/console_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_console/space_console.c b/source/blender/editors/space_console/space_console.c
index 126db64e2a8..ebf96cca191 100644
--- a/source/blender/editors/space_console/space_console.c
+++ b/source/blender/editors/space_console/space_console.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_file/file_draw.c b/source/blender/editors/space_file/file_draw.c
index 79c1cce4656..041280aaf7e 100644
--- a/source/blender/editors/space_file/file_draw.c
+++ b/source/blender/editors/space_file/file_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_file/file_intern.h b/source/blender/editors/space_file/file_intern.h
index 692953a18a3..d9f7e7dc833 100644
--- a/source/blender/editors/space_file/file_intern.h
+++ b/source/blender/editors/space_file/file_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c
index 67b74010e53..100931e02eb 100644
--- a/source/blender/editors/space_file/file_ops.c
+++ b/source/blender/editors/space_file/file_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_file/file_panels.c b/source/blender/editors/space_file/file_panels.c
index f9c467a039d..37abc854937 100644
--- a/source/blender/editors/space_file/file_panels.c
+++ b/source/blender/editors/space_file/file_panels.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c
index ef011ca4b40..41667a96ab6 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_file/filelist.h b/source/blender/editors/space_file/filelist.h
index 73bd78fadbc..ff7e6869ee3 100644
--- a/source/blender/editors/space_file/filelist.h
+++ b/source/blender/editors/space_file/filelist.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index 9092e639542..c481c5afffc 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c
index 2856f0f4fdf..78977e4e88f 100644
--- a/source/blender/editors/space_file/fsmenu.c
+++ b/source/blender/editors/space_file/fsmenu.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -312,7 +312,7 @@ void fsmenu_read_system(struct FSMenu* fsmenu)
#if (MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4)
OSErr err=noErr;
int i;
- char *home;
+ const char *home;
/* loop through all the OS X Volumes, and add them to the SYSTEM section */
for (i=1; err!=nsvErr; i++)
@@ -454,7 +454,7 @@ void fsmenu_read_system(struct FSMenu* fsmenu)
#else
/* unix */
{
- char *home= getenv("HOME");
+ const char *home= getenv("HOME");
if(home) {
BLI_snprintf(line, FILE_MAXDIR, "%s/", home);
diff --git a/source/blender/editors/space_file/fsmenu.h b/source/blender/editors/space_file/fsmenu.h
index d499f439f65..ec322de5c52 100644
--- a/source/blender/editors/space_file/fsmenu.h
+++ b/source/blender/editors/space_file/fsmenu.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c
index 47140bd6e74..4c475039c37 100644
--- a/source/blender/editors/space_file/space_file.c
+++ b/source/blender/editors/space_file/space_file.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_graph/CMakeLists.txt b/source/blender/editors/space_graph/CMakeLists.txt
index e57bf83cb12..5b5fd41bf23 100644
--- a/source/blender/editors/space_graph/CMakeLists.txt
+++ b/source/blender/editors/space_graph/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/space_graph/SConscript b/source/blender/editors/space_graph/SConscript
index 174894ddfad..75d0927192b 100644
--- a/source/blender/editors/space_graph/SConscript
+++ b/source/blender/editors/space_graph/SConscript
@@ -5,6 +5,6 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' #/intern/audaspace/intern'
+incs += ' #/intern/audaspace/intern ../../blenloader'
env.BlenderLib ( 'bf_editors_space_graph', sources, Split(incs), [], libtype=['core'], priority=[50] )
diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c
index 635044fa795..8c97e269aa4 100644
--- a/source/blender/editors/space_graph/graph_buttons.c
+++ b/source/blender/editors/space_graph/graph_buttons.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c
index 901ede9fff7..44bc3fe7d94 100644
--- a/source/blender/editors/space_graph/graph_draw.c
+++ b/source/blender/editors/space_graph/graph_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c
index 697ea86e43a..5756c99862d 100644
--- a/source/blender/editors/space_graph/graph_edit.c
+++ b/source/blender/editors/space_graph/graph_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_graph/graph_intern.h b/source/blender/editors/space_graph/graph_intern.h
index d27935ee75a..b596e659b63 100644
--- a/source/blender/editors/space_graph/graph_intern.h
+++ b/source/blender/editors/space_graph/graph_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c
index 57e9f49f69d..93004a871d0 100644
--- a/source/blender/editors/space_graph/graph_ops.c
+++ b/source/blender/editors/space_graph/graph_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_graph/graph_select.c b/source/blender/editors/space_graph/graph_select.c
index 3fb86be4ed1..0d6f097c613 100644
--- a/source/blender/editors/space_graph/graph_select.c
+++ b/source/blender/editors/space_graph/graph_select.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_graph/graph_utils.c b/source/blender/editors/space_graph/graph_utils.c
index 31c1394f1ae..7c3b61e79b3 100644
--- a/source/blender/editors/space_graph/graph_utils.c
+++ b/source/blender/editors/space_graph/graph_utils.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c
index 7a8bc9a65d6..38919076b13 100644
--- a/source/blender/editors/space_graph/space_graph.c
+++ b/source/blender/editors/space_graph/space_graph.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_image/CMakeLists.txt b/source/blender/editors/space_image/CMakeLists.txt
index c7b0db8fbbc..f6825808267 100644
--- a/source/blender/editors/space_image/CMakeLists.txt
+++ b/source/blender/editors/space_image/CMakeLists.txt
@@ -23,6 +23,7 @@ set(INC
../include
../../blenfont
../../blenkernel
+ ../../blenloader
../../blenlib
../../imbuf
../../makesdna
diff --git a/source/blender/editors/space_image/SConscript b/source/blender/editors/space_image/SConscript
index f51037642c4..e84afcdaab1 100644
--- a/source/blender/editors/space_image/SConscript
+++ b/source/blender/editors/space_image/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../render/extern/include ../../makesrna'
+incs += ' ../../render/extern/include ../../makesrna ../../blenloader'
defs = []
diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c
index e68d9f66986..ea991f420a0 100644
--- a/source/blender/editors/space_image/image_buttons.c
+++ b/source/blender/editors/space_image/image_buttons.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_image/image_draw.c b/source/blender/editors/space_image/image_draw.c
index 9593c896c22..4abddf18c20 100644
--- a/source/blender/editors/space_image/image_draw.c
+++ b/source/blender/editors/space_image/image_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_image/image_header.c b/source/blender/editors/space_image/image_header.c
index ceb7cda2316..176e12025f7 100644
--- a/source/blender/editors/space_image/image_header.c
+++ b/source/blender/editors/space_image/image_header.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_image/image_intern.h b/source/blender/editors/space_image/image_intern.h
index 327749125a5..f3804fbc453 100644
--- a/source/blender/editors/space_image/image_intern.h
+++ b/source/blender/editors/space_image/image_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -79,6 +79,8 @@ void IMAGE_OT_save_sequence(struct wmOperatorType *ot);
void IMAGE_OT_pack(struct wmOperatorType *ot);
void IMAGE_OT_unpack(struct wmOperatorType *ot);
+void IMAGE_OT_invert(struct wmOperatorType *ot);
+
void IMAGE_OT_cycle_render_slot(struct wmOperatorType *ot);
void IMAGE_OT_sample(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c
index fdf5cea880b..25dd79ecc8e 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -1345,6 +1345,89 @@ void IMAGE_OT_new(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "float", 0, "32 bit Float", "Create image with 32 bit floating point bit depth.");
}
+/********************* invert operators *********************/
+
+static int image_invert_poll(bContext *C)
+{
+ Image *ima= CTX_data_edit_image(C);
+ ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL);
+
+ if( ibuf != NULL )
+ return 1;
+ return 0;
+}
+
+static int image_invert_exec(bContext *C, wmOperator *op)
+{
+ Image *ima= CTX_data_edit_image(C);
+ ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL);
+
+ // flags indicate if this channel should be inverted
+ short r,g,b,a;
+ int i, dirty = 0;
+
+ if( ibuf == NULL) // TODO: this should actually never happen, but does for render-results -> cleanup
+ return OPERATOR_CANCELLED;
+
+ r = RNA_boolean_get(op->ptr, "invert_r");
+ g = RNA_boolean_get(op->ptr, "invert_g");
+ b = RNA_boolean_get(op->ptr, "invert_b");
+ a = RNA_boolean_get(op->ptr, "invert_a");
+
+ /* TODO: make this into an IMB_invert_channels(ibuf,r,g,b,a) method!? */
+ if (ibuf->rect_float) {
+
+ float *fp = (float *) ibuf->rect_float;
+ for( i = ibuf->x * ibuf->y; i > 0; i--, fp+=4 ) {
+ if( r ) fp[0] = 1.0f - fp[0];
+ if( g ) fp[1] = 1.0f - fp[1];
+ if( b ) fp[2] = 1.0f - fp[2];
+ if( a ) fp[3] = 1.0f - fp[3];
+ }
+ dirty = 1;
+ IMB_rect_from_float(ibuf);
+ }
+ else if(ibuf->rect) {
+
+ char *cp = (char *) ibuf->rect;
+ for( i = ibuf->x * ibuf->y; i > 0; i--, cp+=4 ) {
+ if( r ) cp[0] = 255 - cp[0];
+ if( g ) cp[1] = 255 - cp[1];
+ if( b ) cp[2] = 255 - cp[2];
+ if( a ) cp[3] = 255 - cp[3];
+ }
+ dirty = 1;
+ }
+ else
+ return OPERATOR_CANCELLED;
+
+ ibuf->userflags |= IB_BITMAPDIRTY; // mark as modified
+ WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ima);
+
+ return OPERATOR_FINISHED;
+
+}
+
+void IMAGE_OT_invert(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Invert Channels";
+ ot->idname= "IMAGE_OT_invert";
+
+ /* api callbacks */
+ ot->exec= image_invert_exec;
+ ot->poll= image_invert_poll;
+
+ /* properties */
+ RNA_def_boolean(ot->srna, "invert_r", 0, "Red", "Invert Red Channel");
+ RNA_def_boolean(ot->srna, "invert_g", 0, "Green", "Invert Green Channel");
+ RNA_def_boolean(ot->srna, "invert_b", 0, "Blue", "Invert Blue Channel");
+ RNA_def_boolean(ot->srna, "invert_a", 0, "Alpha", "Invert Alpha Channel");
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
/********************* pack operator *********************/
static int pack_test(bContext *C, wmOperator *op)
@@ -1499,7 +1582,7 @@ void IMAGE_OT_unpack(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-
+
/* properties */
RNA_def_enum(ot->srna, "method", unpack_method_items, PF_USE_LOCAL, "Method", "How to unpack.");
RNA_def_string(ot->srna, "id", "", 21, "Image Name", "Image datablock name to unpack."); /* XXX, weark!, will fail with library, name collisions */
diff --git a/source/blender/editors/space_image/image_render.c b/source/blender/editors/space_image/image_render.c
index f09a1353935..03ac3f4e79e 100644
--- a/source/blender/editors/space_image/image_render.c
+++ b/source/blender/editors/space_image/image_render.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c
index 1d7cb357e5f..cc81d7ac975 100644
--- a/source/blender/editors/space_image/space_image.c
+++ b/source/blender/editors/space_image/space_image.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -478,6 +478,8 @@ static void image_operatortypes(void)
WM_operatortype_append(IMAGE_OT_save_sequence);
WM_operatortype_append(IMAGE_OT_pack);
WM_operatortype_append(IMAGE_OT_unpack);
+
+ WM_operatortype_append(IMAGE_OT_invert);
WM_operatortype_append(IMAGE_OT_cycle_render_slot);
diff --git a/source/blender/editors/space_info/CMakeLists.txt b/source/blender/editors/space_info/CMakeLists.txt
index 262882e886f..c7e0b23acab 100644
--- a/source/blender/editors/space_info/CMakeLists.txt
+++ b/source/blender/editors/space_info/CMakeLists.txt
@@ -23,6 +23,7 @@ set(INC
../include
../../blenfont
../../blenkernel
+ ../../blenloader
../../blenlib
../../imbuf
../../makesdna
diff --git a/source/blender/editors/space_info/SConscript b/source/blender/editors/space_info/SConscript
index 417b9c7d962..697ee4319b8 100644
--- a/source/blender/editors/space_info/SConscript
+++ b/source/blender/editors/space_info/SConscript
@@ -4,7 +4,7 @@ Import ('env')
sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf ../../blenfont'
-incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
+incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include ../../blenloader'
defs = []
diff --git a/source/blender/editors/space_info/info_draw.c b/source/blender/editors/space_info/info_draw.c
index 71424bb8384..6b3c3f1ad25 100644
--- a/source/blender/editors/space_info/info_draw.c
+++ b/source/blender/editors/space_info/info_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -62,14 +62,6 @@
static void info_report_color(unsigned char *fg, unsigned char *bg, Report *report, int bool)
{
- /*
- if (type & RPT_ERROR_ALL) { fg[0]=220; fg[1]=0; fg[2]=0; }
- else if (type & RPT_WARNING_ALL) { fg[0]=220; fg[1]=96; fg[2]=96; }
- else if (type & RPT_OPERATOR_ALL) { fg[0]=96; fg[1]=128; fg[2]=255; }
- else if (type & RPT_INFO_ALL) { fg[0]=0; fg[1]=170; fg[2]=0; }
- else if (type & RPT_DEBUG_ALL) { fg[0]=196; fg[1]=196; fg[2]=196; }
- else { fg[0]=196; fg[1]=196; fg[2]=196; }
- */
if(report->flag & SELECT) {
fg[0]=255; fg[1]=255; fg[2]=255;
if(bool) {
@@ -79,17 +71,35 @@ static void info_report_color(unsigned char *fg, unsigned char *bg, Report *repo
bg[0]=90; bg[1]=122; bg[2]=249;
}
}
-
else {
fg[0]=0; fg[1]=0; fg[2]=0;
-
- if(bool) {
- bg[0]=120; bg[1]=120; bg[2]=120;
+
+ if (report->type & RPT_ERROR_ALL) {
+ if (bool) { bg[0]=220; bg[1]=0; bg[2]=0; }
+ else { bg[0]=214; bg[1]=0; bg[2]=0; }
+ }
+ else if (report->type & RPT_WARNING_ALL) {
+ if (bool) { bg[0]=220; bg[1]=128; bg[2]=96; }
+ else { bg[0]=214; bg[1]=122; bg[2]=90; }
+ }
+#if 0 // XXX: this looks like the selected colour, so don't use this
+ else if (report->type & RPT_OPERATOR_ALL) {
+ if (bool) { bg[0]=96; bg[1]=128; bg[2]=255; }
+ else { bg[0]=90; bg[1]=122; bg[2]=249; }
+ }
+#endif
+ else if (report->type & RPT_INFO_ALL) {
+ if (bool) { bg[0]=0; bg[1]=170; bg[2]=0; }
+ else { bg[0]=0; bg[1]=164; bg[2]=0; }
+ }
+ else if (report->type & RPT_DEBUG_ALL) {
+ if (bool) { bg[0]=196; bg[1]=196; bg[2]=196; }
+ else { bg[0]=190; bg[1]=190; bg[2]=190; }
}
else {
- bg[0]=114; bg[1]=114; bg[2]=114;
+ if (bool) { bg[0]=120; bg[1]=120; bg[2]=120; }
+ else { bg[0]=114; bg[1]=114; bg[2]=114; }
}
-
}
}
diff --git a/source/blender/editors/space_info/info_intern.h b/source/blender/editors/space_info/info_intern.h
index abbe37a4fe1..cda1123fa79 100644
--- a/source/blender/editors/space_info/info_intern.h
+++ b/source/blender/editors/space_info/info_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_info/info_ops.c b/source/blender/editors/space_info/info_ops.c
index a20d3b961c0..a4243f7c19e 100644
--- a/source/blender/editors/space_info/info_ops.c
+++ b/source/blender/editors/space_info/info_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_info/info_report.c b/source/blender/editors/space_info/info_report.c
index ce0bc6864c8..8766df6a0b9 100644
--- a/source/blender/editors/space_info/info_report.c
+++ b/source/blender/editors/space_info/info_report.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_info/info_stats.c b/source/blender/editors/space_info/info_stats.c
index b5abc077eef..b3c8c6c891e 100644
--- a/source/blender/editors/space_info/info_stats.c
+++ b/source/blender/editors/space_info/info_stats.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_info/space_info.c b/source/blender/editors/space_info/space_info.c
index b7360f75de9..b9415d630be 100644
--- a/source/blender/editors/space_info/space_info.c
+++ b/source/blender/editors/space_info/space_info.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_info/textview.c b/source/blender/editors/space_info/textview.c
index 0f11dee7d5a..c718c3a9532 100644
--- a/source/blender/editors/space_info/textview.c
+++ b/source/blender/editors/space_info/textview.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_info/textview.h b/source/blender/editors/space_info/textview.h
index aeea12827be..5d20eef56c9 100644
--- a/source/blender/editors/space_info/textview.h
+++ b/source/blender/editors/space_info/textview.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_logic/CMakeLists.txt b/source/blender/editors/space_logic/CMakeLists.txt
index 707f4ab42ed..d33bf2db5e1 100644
--- a/source/blender/editors/space_logic/CMakeLists.txt
+++ b/source/blender/editors/space_logic/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/space_logic/SConscript b/source/blender/editors/space_logic/SConscript
index 4d02363ff90..6beb3ecb48f 100644
--- a/source/blender/editors/space_logic/SConscript
+++ b/source/blender/editors/space_logic/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../makesrna ../interface'
+incs += ' ../../makesrna ../interface ../../blenloader'
defs = []
diff --git a/source/blender/editors/space_logic/logic_buttons.c b/source/blender/editors/space_logic/logic_buttons.c
index 2148dd289ca..310cbf645d1 100644
--- a/source/blender/editors/space_logic/logic_buttons.c
+++ b/source/blender/editors/space_logic/logic_buttons.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_logic/logic_intern.h b/source/blender/editors/space_logic/logic_intern.h
index 0c30aa711f1..acd5eb0e098 100644
--- a/source/blender/editors/space_logic/logic_intern.h
+++ b/source/blender/editors/space_logic/logic_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_logic/logic_ops.c b/source/blender/editors/space_logic/logic_ops.c
index 4bcb7c1d2f3..979979ff23e 100644
--- a/source/blender/editors/space_logic/logic_ops.c
+++ b/source/blender/editors/space_logic/logic_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c
index 40206a314e8..f7a65d27bb3 100644
--- a/source/blender/editors/space_logic/logic_window.c
+++ b/source/blender/editors/space_logic/logic_window.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_logic/space_logic.c b/source/blender/editors/space_logic/space_logic.c
index 516130aa09b..69ac68f6f82 100644
--- a/source/blender/editors/space_logic/space_logic.c
+++ b/source/blender/editors/space_logic/space_logic.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_nla/CMakeLists.txt b/source/blender/editors/space_nla/CMakeLists.txt
index 3f194bc0438..f8503739844 100644
--- a/source/blender/editors/space_nla/CMakeLists.txt
+++ b/source/blender/editors/space_nla/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/space_nla/SConscript b/source/blender/editors/space_nla/SConscript
index 790e3ad822c..51ce829ed8d 100644
--- a/source/blender/editors/space_nla/SConscript
+++ b/source/blender/editors/space_nla/SConscript
@@ -4,6 +4,6 @@ Import ('env')
sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
-incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
+incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include ../../blenloader'
env.BlenderLib ( 'bf_editors_space_nla', sources, Split(incs), [], libtype=['core'], priority=[85] )
diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c
index 8069bf74bce..a49067f64bd 100644
--- a/source/blender/editors/space_nla/nla_buttons.c
+++ b/source/blender/editors/space_nla/nla_buttons.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_nla/nla_channels.c b/source/blender/editors/space_nla/nla_channels.c
index 7d4db6fd89c..1ef368c8454 100644
--- a/source/blender/editors/space_nla/nla_channels.c
+++ b/source/blender/editors/space_nla/nla_channels.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c
index 43a64f07de5..b09fb97094e 100644
--- a/source/blender/editors/space_nla/nla_draw.c
+++ b/source/blender/editors/space_nla/nla_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c
index d43b86b436d..64fcb8d6ac5 100644
--- a/source/blender/editors/space_nla/nla_edit.c
+++ b/source/blender/editors/space_nla/nla_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_nla/nla_intern.h b/source/blender/editors/space_nla/nla_intern.h
index 98ebc5af227..bd3a80a65c2 100644
--- a/source/blender/editors/space_nla/nla_intern.h
+++ b/source/blender/editors/space_nla/nla_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_nla/nla_ops.c b/source/blender/editors/space_nla/nla_ops.c
index 49c1733c37a..358b847db20 100644
--- a/source/blender/editors/space_nla/nla_ops.c
+++ b/source/blender/editors/space_nla/nla_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_nla/nla_select.c b/source/blender/editors/space_nla/nla_select.c
index 40cc6fb0784..ec51be4d419 100644
--- a/source/blender/editors/space_nla/nla_select.c
+++ b/source/blender/editors/space_nla/nla_select.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_nla/space_nla.c b/source/blender/editors/space_nla/space_nla.c
index 06b1b93b590..c1bd5a98551 100644
--- a/source/blender/editors/space_nla/space_nla.c
+++ b/source/blender/editors/space_nla/space_nla.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_node/CMakeLists.txt b/source/blender/editors/space_node/CMakeLists.txt
index c615f5cc85f..955f57002a5 100644
--- a/source/blender/editors/space_node/CMakeLists.txt
+++ b/source/blender/editors/space_node/CMakeLists.txt
@@ -23,6 +23,7 @@ set(INC
../include
../../blenfont
../../blenkernel
+ ../../blenloader
../../blenlib
../../imbuf
../../makesdna
diff --git a/source/blender/editors/space_node/SConscript b/source/blender/editors/space_node/SConscript
index 1487a68215e..634d4b777d9 100644
--- a/source/blender/editors/space_node/SConscript
+++ b/source/blender/editors/space_node/SConscript
@@ -4,7 +4,7 @@ Import ('env')
sources = env.Glob('*.c')
incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
-incs += ' ../../nodes ../../render/extern/include'
+incs += ' ../../nodes ../../render/extern/include ../../blenloader'
incs += ' ../../windowmanager #intern/guardedalloc #extern/glew/include'
defs = []
cf = []
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index 203e6a618a5..880b537de02 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -1604,11 +1604,11 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
int do_shaded= 0, th_col1= TH_HEADER, th_col2= TH_HEADER;
int do_triple= 0, th_col3= TH_WIRE;
- if(link->fromnode==NULL && link->tonode==NULL)
+ if(link->fromsock==NULL && link->tosock==NULL)
return;
/* new connection */
- if(link->fromnode==NULL || link->tonode==NULL) {
+ if(!link->fromsock || !link->tosock) {
th_col1 = TH_ACTIVE;
do_triple = 1;
}
@@ -1620,8 +1620,9 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
return;
/* a bit ugly... but thats how we detect the internal group links */
- if(link->fromnode==link->tonode) {
- th_col1 = TH_GRID;
+ if(!link->fromnode || !link->tonode) {
+ UI_ThemeColorBlend(TH_BACK, TH_WIRE, 0.5f);
+ do_shaded= 0;
}
else {
/* check cyclic */
diff --git a/source/blender/editors/space_node/node_buttons.c b/source/blender/editors/space_node/node_buttons.c
index 69a6029e140..12f99baa800 100644
--- a/source/blender/editors/space_node/node_buttons.c
+++ b/source/blender/editors/space_node/node_buttons.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c
index 7b9a33c521f..c766b797534 100644
--- a/source/blender/editors/space_node/node_draw.c
+++ b/source/blender/editors/space_node/node_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,8 @@
#include <stdio.h>
#include <string.h>
+#include "MEM_guardedalloc.h"
+
#include "DNA_node_types.h"
#include "DNA_material_types.h"
#include "DNA_object_types.h"
@@ -68,6 +70,9 @@
#include "node_intern.h"
+/* width of socket columns in group display */
+#define NODE_GROUP_FRAME 120
+
// XXX interface.h
extern void ui_dropshadow(rctf *rct, float radius, float aspect, int select);
@@ -380,9 +385,13 @@ static void node_update_group(const bContext *C, bNodeTree *ntree, bNode *gnode)
{
bNodeTree *ngroup= (bNodeTree *)gnode->id;
bNode *node;
- bNodeSocket *nsock;
+ bNodeSocket *sock, *gsock;
rctf *rect= &gnode->totr;
int counter;
+ int dy;
+
+ rect->xmin = rect->xmax = gnode->locx;
+ rect->ymin = rect->ymax = gnode->locy;
/* center them, is a bit of abuse of locx and locy though */
for(node= ngroup->nodes.first; node; node= node->next) {
@@ -405,23 +414,43 @@ static void node_update_group(const bContext *C, bNodeTree *ntree, bNode *gnode)
else
BLI_union_rctf(rect, &node->totr);
}
- if(counter==1) return; /* should be prevented? */
- rect->xmin-= NODE_DY;
+ /* add some room for links to group sockets */
+ rect->xmin -= 4*NODE_DY;
+ rect->xmax += 4*NODE_DY;
rect->ymin-= NODE_DY;
- rect->xmax+= NODE_DY;
rect->ymax+= NODE_DY;
- /* output sockets */
- for(nsock= gnode->outputs.first; nsock; nsock= nsock->next) {
- nsock->locx= rect->xmax;
- nsock->locy= nsock->tosock->locy;
+ /* input sockets */
+ dy = 0.5f*(rect->ymin+rect->ymax) + NODE_DY*(BLI_countlist(&gnode->inputs)-1);
+ for(gsock=ngroup->inputs.first, sock=gnode->inputs.first; gsock; gsock=gsock->next, sock=sock->next) {
+ gsock->locx = rect->xmin;
+ sock->locx = rect->xmin - NODE_GROUP_FRAME;
+ sock->locy = gsock->locy = dy;
+
+ /* prevent long socket lists from growing out of the group box */
+ if (dy-3*NODE_DYS < rect->ymin)
+ rect->ymin = dy-3*NODE_DYS;
+ if (dy+3*NODE_DYS > rect->ymax)
+ rect->ymax = dy+3*NODE_DYS;
+
+ dy -= 2*NODE_DY;
}
- /* input sockets */
- for(nsock= gnode->inputs.first; nsock; nsock= nsock->next) {
- nsock->locx= rect->xmin;
- nsock->locy= nsock->tosock->locy;
+ /* output sockets */
+ dy = 0.5f*(rect->ymin+rect->ymax) + NODE_DY*(BLI_countlist(&gnode->outputs)-1);
+ for(gsock=ngroup->outputs.first, sock=gnode->outputs.first; gsock; gsock=gsock->next, sock=sock->next) {
+ gsock->locx = rect->xmax;
+ sock->locx = rect->xmax + NODE_GROUP_FRAME;
+ sock->locy = gsock->locy = dy - NODE_DYS;
+
+ /* prevent long socket lists from growing out of the group box */
+ if (dy-3*NODE_DYS < rect->ymin)
+ rect->ymin = dy-3*NODE_DYS;
+ if (dy+3*NODE_DYS > rect->ymax)
+ rect->ymax = dy+3*NODE_DYS;
+
+ dy -= 2*NODE_DY;
}
}
@@ -549,29 +578,6 @@ static void node_sync_cb(bContext *UNUSED(C), void *snode_v, void *node_v)
/* ************** Socket callbacks *********** */
-/* NOTE: this is a block-menu, needs 0 events, otherwise the menu closes */
-static uiBlock *socket_vector_menu(bContext *C, ARegion *ar, void *socket_v)
-{
- bNodeSocket *sock= socket_v;
- uiBlock *block;
-
- SpaceNode *snode= CTX_wm_space_node(C);
- bNodeTree *ntree = snode->nodetree;
- PointerRNA ptr;
- uiLayout *layout;
-
- RNA_pointer_create(&ntree->id, &RNA_NodeSocket, sock, &ptr);
-
- block= uiBeginBlock(C, ar, "socket menu", UI_EMBOSS);
- uiBlockSetFlag(block, UI_BLOCK_KEEP_OPEN);
-
- layout= uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, sock->locx, sock->locy-8, 140, 20, U.uistyles.first), 0);
-
- uiItemR(layout, &ptr, "default_value", UI_ITEM_R_EXPAND, "", ICON_NULL);
-
- return block;
-}
-
/* not a callback */
static void node_draw_preview(bNodePreview *preview, rctf *prv)
{
@@ -626,16 +632,91 @@ static void node_draw_preview(bNodePreview *preview, rctf *prv)
}
+typedef struct SocketVectorMenuArgs {
+ PointerRNA ptr;
+ int x, y, width;
+ uiButHandleFunc cb;
+ void *arg1, *arg2;
+} SocketVectorMenuArgs;
+
+/* NOTE: this is a block-menu, needs 0 events, otherwise the menu closes */
+static uiBlock *socket_vector_menu(bContext *C, ARegion *ar, void *args_v)
+{
+ SocketVectorMenuArgs *args= (SocketVectorMenuArgs*)args_v;
+ uiBlock *block;
+ uiLayout *layout;
+
+ block= uiBeginBlock(C, ar, "socket menu", UI_EMBOSS);
+ uiBlockSetFlag(block, UI_BLOCK_KEEP_OPEN);
+
+ layout= uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, args->x, args->y+2, args->width, 20, U.uistyles.first), 0);
+
+ uiItemR(layout, &args->ptr, "default_value", UI_ITEM_R_EXPAND, "", ICON_NULL);
+
+ return block;
+}
+
+static void node_draw_socket_button(bNodeTree *ntree, bNodeSocket *sock, const char *name,
+ uiBlock *block, int x, int y, int width,
+ uiButHandleFunc cb, void *arg1, void *arg2)
+{
+ uiBut *bt= NULL;
+ PointerRNA ptr;
+ int labelw;
+ SocketVectorMenuArgs *args;
+
+ RNA_pointer_create(&ntree->id, &RNA_NodeSocket, sock, &ptr);
+
+ switch (sock->type) {
+ case SOCK_VALUE:
+ bt=uiDefButR(block, NUM, B_NODE_EXEC, name,
+ x, y+1, width, 17,
+ &ptr, "default_value", 0, sock->ns.min, sock->ns.max, -1, -1, NULL);
+ if (cb)
+ uiButSetFunc(bt, cb, arg1, arg2);
+ break;
+
+ case SOCK_VECTOR:
+ args= MEM_callocN(sizeof(SocketVectorMenuArgs), "SocketVectorMenuArgs");
+
+ args->ptr = ptr;
+ args->x = x;
+ args->y = y;
+ args->width = width;
+ args->cb = cb;
+ args->arg1 = arg1;
+ args->arg2 = arg2;
+
+ uiDefBlockButN(block, socket_vector_menu, args, name,
+ x, y+1, width, 17,
+ "");
+ break;
+
+ case SOCK_RGBA:
+ labelw= width - 40;
+
+ bt=uiDefButR(block, COL, B_NODE_EXEC, "",
+ x, y+2, (labelw>0 ? 40 : width), 15,
+ &ptr, "default_value", 0, sock->ns.min, sock->ns.max, -1, -1, NULL);
+ if (cb)
+ uiButSetFunc(bt, cb, arg1, arg2);
+
+ if (name[0]!='\0' && labelw>0)
+ uiDefBut(block, LABEL, 0, name,
+ x + 40, y+2, labelw, 15,
+ NULL, 0, 0, 0, 0, "");
+ break;
+ }
+}
+
static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *node)
{
bNodeSocket *sock;
- uiBut *bt;
rctf *rct= &node->totr;
- float /*slen,*/ iconofs;
- int /*ofs,*/ color_id= node_get_colorid(node);
+ float iconofs;
+ int color_id= node_get_colorid(node);
char showname[128]; /* 128 used below */
View2D *v2d = &ar->v2d;
- PointerRNA ptr;
/* hurmf... another candidate for callback, have to see how this works first */
if(node->id && node->block && snode->treetype==NTREE_SHADER)
@@ -765,38 +846,10 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) {
socket_circle_draw(sock, NODE_SOCKSIZE);
- RNA_pointer_create(&ntree->id, &RNA_NodeSocket, sock, &ptr);
-
if(node->block && sock->link==NULL) {
-
- if(sock->type==SOCK_VALUE) {
- bt=uiDefButR(node->block, NUM, B_NODE_EXEC, sock->name,
- (short)sock->locx+NODE_DYS, (short)(sock->locy)-9, (short)node->width-NODE_DY, 17,
- &ptr, "default_value", 0, sock->ns.min, sock->ns.max, -1, -1, NULL);
- uiButSetFunc(bt, node_sync_cb, snode, node);
- }
- else if(sock->type==SOCK_VECTOR) {
- uiDefBlockBut(node->block, socket_vector_menu, sock, sock->name,
- (short)sock->locx+NODE_DYS, (short)sock->locy-9, (short)node->width-NODE_DY, 17,
- "");
- }
- else if(node->block && sock->type==SOCK_RGBA) {
- short labelw= (short)node->width-NODE_DY-40, width;
-
- if(labelw>0) width= 40; else width= (short)node->width-NODE_DY;
-
- bt=uiDefButR(node->block, COL, B_NODE_EXEC, "",
- (short)sock->locx+NODE_DYS, (short)(sock->locy)-8, width, 15,
- &ptr, "default_value", 0, sock->ns.min, sock->ns.max, -1, -1, NULL);
- uiButSetFunc(bt, node_sync_cb, snode, node);
-
- if(labelw>0) uiDefBut(node->block, LABEL, 0, sock->name,
- (short)(sock->locx+NODE_DYS) + 40, (short)sock->locy-8, labelw, 15,
- NULL, 0, 0, 0, 0, "");
- }
+ node_draw_socket_button(ntree, sock, sock->name, node->block, sock->locx+NODE_DYS, sock->locy-NODE_DYS, node->width-NODE_DY, node_sync_cb, snode, node);
}
else {
-
uiDefBut(node->block, LABEL, 0, sock->name, (short)(sock->locx+7), (short)(sock->locy-9.0f),
(short)(node->width-NODE_DY), NODE_DY, NULL, 0, 0, 0, 0, "");
}
@@ -969,39 +1022,11 @@ static void node_draw_nodetree(const bContext *C, ARegion *ar, SpaceNode *snode,
}
}
-/* fake links from groupnode to internal nodes */
-static void node_draw_group_links(View2D *v2d, SpaceNode *snode, bNode *gnode)
+static void group_verify_cb(bContext *UNUSED(C), void *UNUSED(snode_v), void *ngroup_v)
{
- bNodeLink fakelink;
- bNodeSocket *sock;
-
- glEnable(GL_BLEND);
- glEnable(GL_LINE_SMOOTH);
-
- fakelink.tonode= fakelink.fromnode= gnode;
-
- for(sock= gnode->inputs.first; sock; sock= sock->next) {
- if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) {
- if(sock->tosock) {
- fakelink.fromsock= sock;
- fakelink.tosock= sock->tosock;
- node_draw_link(v2d, snode, &fakelink);
- }
- }
- }
+ bNodeTree *ngroup= (bNodeTree*)ngroup_v;
- for(sock= gnode->outputs.first; sock; sock= sock->next) {
- if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) {
- if(sock->tosock) {
- fakelink.tosock= sock;
- fakelink.fromsock= sock->tosock;
- node_draw_link(v2d, snode, &fakelink);
- }
- }
- }
-
- glDisable(GL_BLEND);
- glDisable(GL_LINE_SMOOTH);
+ nodeGroupVerify(ngroup);
}
/* groups are, on creation, centered around 0,0 */
@@ -1010,25 +1035,51 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
bNodeTree *ngroup= (bNodeTree *)gnode->id;
bNodeSocket *sock;
rctf rect= gnode->totr;
+ int index;
uiLayout *layout;
PointerRNA ptr;
+ uiBut *bt;
/* backdrop header */
glEnable(GL_BLEND);
uiSetRoundBox(3);
UI_ThemeColorShadeAlpha(TH_NODE_GROUP, 0, -70);
- uiDrawBox(GL_POLYGON, rect.xmin, rect.ymax, rect.xmax, rect.ymax+26, BASIS_RAD);
+ uiDrawBox(GL_POLYGON, rect.xmin-NODE_GROUP_FRAME, rect.ymax, rect.xmax+NODE_GROUP_FRAME, rect.ymax+26, BASIS_RAD);
/* backdrop body */
UI_ThemeColorShadeAlpha(TH_BACK, -8, -70);
- uiSetRoundBox(12);
+ uiSetRoundBox(0);
uiDrawBox(GL_POLYGON, rect.xmin, rect.ymin, rect.xmax, rect.ymax, BASIS_RAD);
-
- /* selection outline */
+
+ /* input column */
+ UI_ThemeColorShadeAlpha(TH_BACK, 10, -50);
+ uiSetRoundBox(8);
+ uiDrawBox(GL_POLYGON, rect.xmin-NODE_GROUP_FRAME, rect.ymin, rect.xmin, rect.ymax, BASIS_RAD);
+
+ /* output column */
+ UI_ThemeColorShadeAlpha(TH_BACK, 10, -50);
+ uiSetRoundBox(4);
+ uiDrawBox(GL_POLYGON, rect.xmax, rect.ymin, rect.xmax+NODE_GROUP_FRAME, rect.ymax, BASIS_RAD);
+
+ /* input column separator */
+ glColor4ub(200, 200, 200, 140);
+ glBegin(GL_LINES);
+ glVertex2f(rect.xmin, rect.ymin);
+ glVertex2f(rect.xmin, rect.ymax);
+ glEnd();
+
+ /* output column separator */
+ glColor4ub(200, 200, 200, 140);
+ glBegin(GL_LINES);
+ glVertex2f(rect.xmax, rect.ymin);
+ glVertex2f(rect.xmax, rect.ymax);
+ glEnd();
+
+ /* group node outline */
uiSetRoundBox(15);
glColor4ub(200, 200, 200, 140);
glEnable( GL_LINE_SMOOTH );
- uiDrawBox(GL_LINE_LOOP, rect.xmin, rect.ymin, rect.xmax, rect.ymax+26, BASIS_RAD);
+ uiDrawBox(GL_LINE_LOOP, rect.xmin-NODE_GROUP_FRAME, rect.ymin, rect.xmax+NODE_GROUP_FRAME, rect.ymax+26, BASIS_RAD);
glDisable( GL_LINE_SMOOTH );
glDisable(GL_BLEND);
@@ -1041,26 +1092,101 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
uiTemplateIDBrowse(layout, (bContext*)C, &ptr, "node_tree", NULL, NULL, NULL);
uiBlockLayoutResolve(gnode->block, NULL, NULL);
- uiEndBlock(C, gnode->block);
- uiDrawBlock(C, gnode->block);
- gnode->block= NULL;
-
+ /* draw the internal tree nodes and links */
+ node_draw_nodetree(C, ar, snode, ngroup);
- /* links from groupsockets to the internal nodes */
- node_draw_group_links(&ar->v2d, snode, gnode);
-
/* group sockets */
- for(sock= gnode->inputs.first; sock; sock= sock->next)
- if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)))
- socket_circle_draw(sock, NODE_SOCKSIZE);
- for(sock= gnode->outputs.first; sock; sock= sock->next)
- if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)))
- socket_circle_draw(sock, NODE_SOCKSIZE);
-
-
+ for(sock=ngroup->inputs.first, index=0; sock; sock=sock->next, ++index) {
+ socket_circle_draw(sock, NODE_SOCKSIZE);
+ /* small hack to use socket_circle_draw function with offset */
+ sock->locx -= NODE_GROUP_FRAME;
+ socket_circle_draw(sock, NODE_SOCKSIZE);
+ sock->locx += NODE_GROUP_FRAME;
+
+ bt = uiDefBut(gnode->block, TEX, 0, "",
+ sock->locx-114, sock->locy+1, 72, NODE_DY,
+ sock->name, 0, 31, 0, 0, "");
+ uiButSetFunc(bt, group_verify_cb, snode, ngroup);
+
+ node_draw_socket_button(ngroup, sock, "", gnode->block,
+ sock->locx-114, sock->locy-NODE_DY, 72,
+ NULL, NULL, NULL);
+
+ uiBlockSetDirection(gnode->block, UI_TOP);
+ uiBlockBeginAlign(gnode->block);
+ bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_up", 0, ICON_TRIA_UP,
+ sock->locx-40, sock->locy, 16, 16, "");
+ if (!sock->prev)
+ uiButSetFlag(bt, UI_BUT_DISABLED);
+ RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index);
+ RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_IN);
+ bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_down", 0, ICON_TRIA_DOWN,
+ sock->locx-40, sock->locy-16, 16, 16, "");
+ if (!sock->next)
+ uiButSetFlag(bt, UI_BUT_DISABLED);
+ RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index);
+ RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_IN);
+ uiBlockEndAlign(gnode->block);
+ uiBlockSetDirection(gnode->block, 0);
+
+ uiBlockSetEmboss(gnode->block, UI_EMBOSSN);
+ bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_remove", 0, ICON_X,
+ sock->locx-22, sock->locy-8, 16, 16, "");
+ RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index);
+ RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_IN);
+ uiBlockSetEmboss(gnode->block, UI_EMBOSS);
+ }
- /* and finally the whole tree */
- node_draw_nodetree(C, ar, snode, ngroup);
+ for(sock=ngroup->outputs.first, index=0; sock; sock=sock->next, ++index) {
+ socket_circle_draw(sock, NODE_SOCKSIZE);
+ /* small hack to use socket_circle_draw function with offset */
+ sock->locx += NODE_GROUP_FRAME;
+ socket_circle_draw(sock, NODE_SOCKSIZE);
+ sock->locx -= NODE_GROUP_FRAME;
+
+ uiBlockSetEmboss(gnode->block, UI_EMBOSSN);
+ bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_remove", 0, ICON_X,
+ sock->locx+6, sock->locy-8, 16, 16, "");
+ RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index);
+ RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_OUT);
+ uiBlockSetEmboss(gnode->block, UI_EMBOSS);
+
+ uiBlockSetDirection(gnode->block, UI_TOP);
+ uiBlockBeginAlign(gnode->block);
+ bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_up", 0, ICON_TRIA_UP,
+ sock->locx+24, sock->locy, 16, 16, "");
+ if (!sock->prev)
+ uiButSetFlag(bt, UI_BUT_DISABLED);
+ RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index);
+ RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_OUT);
+ bt = uiDefIconButO(gnode->block, BUT, "NODE_OT_group_socket_move_down", 0, ICON_TRIA_DOWN,
+ sock->locx+24, sock->locy-16, 16, 16, "");
+ if (!sock->next)
+ uiButSetFlag(bt, UI_BUT_DISABLED);
+ RNA_int_set(uiButGetOperatorPtrRNA(bt), "index", index);
+ RNA_enum_set(uiButGetOperatorPtrRNA(bt), "in_out", SOCK_OUT);
+ uiBlockEndAlign(gnode->block);
+ uiBlockSetDirection(gnode->block, 0);
+
+ if (sock->link) {
+ bt = uiDefBut(gnode->block, TEX, 0, "",
+ sock->locx+42, sock->locy-NODE_DYS+1, 72, NODE_DY,
+ sock->name, 0, 31, 0, 0, "");
+ uiButSetFunc(bt, group_verify_cb, snode, ngroup);
+ }
+ else {
+ bt = uiDefBut(gnode->block, TEX, 0, "",
+ sock->locx+42, sock->locy+1, 72, NODE_DY,
+ sock->name, 0, 31, 0, 0, "");
+ uiButSetFunc(bt, group_verify_cb, snode, ngroup);
+
+ node_draw_socket_button(ngroup, sock, "", gnode->block, sock->locx+42, sock->locy-NODE_DY, 72, NULL, NULL, NULL);
+ }
+ }
+
+ uiEndBlock(C, gnode->block);
+ uiDrawBlock(C, gnode->block);
+ gnode->block= NULL;
}
void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index 385dfbcd9a8..8086ce3621a 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -77,10 +77,15 @@
#include "IMB_imbuf.h"
+#include "RNA_enum_types.h"
+
#include "node_intern.h"
-#define SOCK_IN 1
-#define SOCK_OUT 2
+static EnumPropertyItem socket_in_out_items[] = {
+ { SOCK_IN, "IN", 0, "In", "" },
+ { SOCK_OUT, "OUT", 0, "Out", "" },
+ { 0, NULL, 0, NULL, NULL}
+};
/* ***************** composite job manager ********************** */
@@ -550,7 +555,7 @@ void node_tree_verify_groups(bNodeTree *nodetree)
/* does all materials */
if(gnode)
- nodeVerifyGroup((bNodeTree *)gnode->id);
+ nodeGroupVerify((bNodeTree *)gnode->id);
}
@@ -634,6 +639,241 @@ void NODE_OT_group_edit(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
}
+/* ***************** Add Group Socket operator ************* */
+
+static int node_group_socket_add_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ int in_out= -1;
+ char name[32]= "";
+ int type= SOCK_VALUE;
+ bNodeTree *ngroup= snode->edittree;
+ bNodeSocket *sock;
+
+ ED_preview_kill_jobs(C);
+
+ if (RNA_property_is_set(op->ptr, "name"))
+ RNA_string_get(op->ptr, "name", name);
+
+ if (RNA_property_is_set(op->ptr, "type"))
+ type = RNA_enum_get(op->ptr, "type");
+
+ if (RNA_property_is_set(op->ptr, "in_out"))
+ in_out = RNA_enum_get(op->ptr, "in_out");
+ else
+ return OPERATOR_CANCELLED;
+
+ sock = nodeGroupAddSocket(ngroup, name, type, in_out);
+
+ node_tree_verify_groups(snode->nodetree);
+
+ snode_notify(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_group_socket_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Add Group Socket";
+ ot->description = "Add node group socket";
+ ot->idname = "NODE_OT_group_socket_add";
+
+ /* api callbacks */
+ ot->exec = node_group_socket_add_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output");
+ RNA_def_string(ot->srna, "name", "", 32, "Name", "Group socket name");
+ RNA_def_enum(ot->srna, "type", node_socket_type_items, SOCK_VALUE, "Type", "Type of the group socket");
+}
+
+/* ***************** Remove Group Socket operator ************* */
+
+static int node_group_socket_remove_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ int index= -1;
+ int in_out= -1;
+ bNodeTree *ngroup= snode->edittree;
+ bNodeSocket *sock;
+
+ ED_preview_kill_jobs(C);
+
+ if (RNA_property_is_set(op->ptr, "index"))
+ index = RNA_int_get(op->ptr, "index");
+ else
+ return OPERATOR_CANCELLED;
+
+ if (RNA_property_is_set(op->ptr, "in_out"))
+ in_out = RNA_enum_get(op->ptr, "in_out");
+ else
+ return OPERATOR_CANCELLED;
+
+ sock = (bNodeSocket*)BLI_findlink(in_out==SOCK_IN ? &ngroup->inputs : &ngroup->outputs, index);
+ if (sock) {
+ nodeGroupRemoveSocket(ngroup, sock, in_out);
+ node_tree_verify_groups(snode->nodetree);
+
+ snode_notify(C, snode);
+ }
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_group_socket_remove(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Remove Group Socket";
+ ot->description = "Removed node group socket";
+ ot->idname = "NODE_OT_group_socket_remove";
+
+ /* api callbacks */
+ ot->exec = node_group_socket_remove_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "", 0, INT_MAX);
+ RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output");
+}
+
+/* ***************** Move Group Socket Up operator ************* */
+
+static int node_group_socket_move_up_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ int index= -1;
+ int in_out= -1;
+ bNodeTree *ngroup= snode->edittree;
+ bNodeSocket *sock, *prev;
+
+ ED_preview_kill_jobs(C);
+
+ if (RNA_property_is_set(op->ptr, "index"))
+ index = RNA_int_get(op->ptr, "index");
+ else
+ return OPERATOR_CANCELLED;
+
+ if (RNA_property_is_set(op->ptr, "in_out"))
+ in_out = RNA_enum_get(op->ptr, "in_out");
+ else
+ return OPERATOR_CANCELLED;
+
+ /* swap */
+ if (in_out==SOCK_IN) {
+ sock = (bNodeSocket*)BLI_findlink(&ngroup->inputs, index);
+ prev = sock->prev;
+ /* can't move up the first socket */
+ if (!prev)
+ return OPERATOR_CANCELLED;
+ BLI_remlink(&ngroup->inputs, sock);
+ BLI_insertlinkbefore(&ngroup->inputs, prev, sock);
+ }
+ else if (in_out==SOCK_OUT) {
+ sock = (bNodeSocket*)BLI_findlink(&ngroup->outputs, index);
+ prev = sock->prev;
+ /* can't move up the first socket */
+ if (!prev)
+ return OPERATOR_CANCELLED;
+ BLI_remlink(&ngroup->outputs, sock);
+ BLI_insertlinkbefore(&ngroup->outputs, prev, sock);
+ }
+ node_tree_verify_groups(snode->nodetree);
+
+ snode_notify(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_group_socket_move_up(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Move Group Socket Up";
+ ot->description = "Move up node group socket";
+ ot->idname = "NODE_OT_group_socket_move_up";
+
+ /* api callbacks */
+ ot->exec = node_group_socket_move_up_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "", 0, INT_MAX);
+ RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output");
+}
+
+/* ***************** Move Group Socket Up operator ************* */
+
+static int node_group_socket_move_down_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ int index= -1;
+ int in_out= -1;
+ bNodeTree *ngroup= snode->edittree;
+ bNodeSocket *sock, *next;
+
+ ED_preview_kill_jobs(C);
+
+ if (RNA_property_is_set(op->ptr, "index"))
+ index = RNA_int_get(op->ptr, "index");
+ else
+ return OPERATOR_CANCELLED;
+
+ if (RNA_property_is_set(op->ptr, "in_out"))
+ in_out = RNA_enum_get(op->ptr, "in_out");
+ else
+ return OPERATOR_CANCELLED;
+
+ /* swap */
+ if (in_out==SOCK_IN) {
+ sock = (bNodeSocket*)BLI_findlink(&ngroup->inputs, index);
+ next = sock->next;
+ /* can't move down the last socket */
+ if (!next)
+ return OPERATOR_CANCELLED;
+ BLI_remlink(&ngroup->inputs, sock);
+ BLI_insertlinkafter(&ngroup->inputs, next, sock);
+ }
+ else if (in_out==SOCK_OUT) {
+ sock = (bNodeSocket*)BLI_findlink(&ngroup->outputs, index);
+ next = sock->next;
+ /* can't move down the last socket */
+ if (!next)
+ return OPERATOR_CANCELLED;
+ BLI_remlink(&ngroup->outputs, sock);
+ BLI_insertlinkafter(&ngroup->outputs, next, sock);
+ }
+ node_tree_verify_groups(snode->nodetree);
+
+ snode_notify(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_group_socket_move_down(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Move Group Socket Down";
+ ot->description = "Move down node group socket";
+ ot->idname = "NODE_OT_group_socket_move_down";
+
+ /* api callbacks */
+ ot->exec = node_group_socket_move_down_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "", 0, INT_MAX);
+ RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output");
+}
+
/* ******************** Ungroup operator ********************** */
static int node_group_ungroup_exec(bContext *C, wmOperator *op)
@@ -1433,6 +1673,33 @@ static int find_indicated_socket(SpaceNode *snode, bNode **nodep, bNodeSocket **
}
}
}
+
+ /* check group sockets
+ * NB: using ngroup->outputs as input sockets and vice versa here!
+ */
+ if(in_out & SOCK_IN) {
+ for(sock= snode->edittree->outputs.first; sock; sock= sock->next) {
+ if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) {
+ if(BLI_in_rctf(&rect, sock->locx, sock->locy)) {
+ *nodep= NULL; /* NULL node pointer indicates group socket */
+ *sockp= sock;
+ return 1;
+ }
+ }
+ }
+ }
+ if(in_out & SOCK_OUT) {
+ for(sock= snode->edittree->inputs.first; sock; sock= sock->next) {
+ if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) {
+ if(BLI_in_rctf(&rect, sock->locx, sock->locy)) {
+ *nodep= NULL; /* NULL node pointer indicates group socket */
+ *sockp= sock;
+ return 1;
+ }
+ }
+ }
+ }
+
return 0;
}
@@ -1473,6 +1740,16 @@ static int node_socket_hilights(SpaceNode *snode, int in_out)
return redraw;
}
+static int outside_group_rect(SpaceNode *snode)
+{
+ bNode *gnode= node_tree_get_editgroup(snode->nodetree);
+ if (gnode) {
+ return (snode->mx < gnode->totr.xmin || snode->mx >= gnode->totr.xmax
+ || snode->my < gnode->totr.ymin || snode->my >= gnode->totr.ymax);
+ }
+ return 0;
+}
+
/* ****************** Add *********************** */
@@ -1701,7 +1978,7 @@ static int node_duplicate_exec(bContext *C, wmOperator *UNUSED(op))
last = ntree->nodes.last;
for(node= ntree->nodes.first; node; node= node->next) {
if(node->flag & SELECT) {
- newnode = nodeCopyNode(ntree, node, 1);
+ newnode = nodeCopyNode(ntree, node);
/* deselect old node, select the copy instead */
node->flag &= ~(NODE_SELECT|NODE_ACTIVE);
@@ -1767,19 +2044,24 @@ static void node_remove_extra_links(SpaceNode *snode, bNodeSocket *tsock, bNodeL
break;
}
if(tlink) {
- /* is there a free input socket with same type? */
- for(sock= tlink->tonode->inputs.first; sock; sock= sock->next) {
- if(sock->type==tlink->fromsock->type)
- if(nodeCountSocketLinks(snode->edittree, sock) < sock->limit)
- break;
- }
- if(sock) {
- tlink->tosock= sock;
- sock->flag &= ~SOCK_HIDDEN;
+ /* try to move the existing link to the next available socket */
+ if (tlink->tonode) {
+ /* is there a free input socket with same type? */
+ for(sock= tlink->tonode->inputs.first; sock; sock= sock->next) {
+ if(sock->type==tlink->fromsock->type)
+ if(nodeCountSocketLinks(snode->edittree, sock) < sock->limit)
+ break;
+ }
+ if(sock) {
+ tlink->tosock= sock;
+ sock->flag &= ~SOCK_HIDDEN;
+ }
+ else {
+ nodeRemLink(snode->edittree, tlink);
+ }
}
- else {
+ else
nodeRemLink(snode->edittree, tlink);
- }
}
}
}
@@ -1810,7 +2092,7 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
if(in_out==SOCK_OUT) {
if(find_indicated_socket(snode, &tnode, &tsock, SOCK_IN)) {
if(nodeFindLink(snode->edittree, sock, tsock)==NULL) {
- if(tnode!=node && link->tonode!=tnode && link->tosock!= tsock) {
+ if( link->tosock!= tsock && (!tnode || (tnode!=node && link->tonode!=tnode)) ) {
link->tonode= tnode;
link->tosock= tsock;
ntreeSolveOrder(snode->edittree); /* for interactive red line warning */
@@ -1826,7 +2108,7 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
if(find_indicated_socket(snode, &tnode, &tsock, SOCK_OUT)) {
if(nodeFindLink(snode->edittree, sock, tsock)==NULL) {
if(nodeCountSocketLinks(snode->edittree, tsock) < tsock->limit) {
- if(tnode!=node && link->fromnode!=tnode && link->fromsock!= tsock) {
+ if( link->fromsock!= tsock && (!tnode || (tnode!=node && link->fromnode!=tnode)) ) {
link->fromnode= tnode;
link->fromsock= tsock;
ntreeSolveOrder(snode->edittree); /* for interactive red line warning */
@@ -1847,19 +2129,28 @@ static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
case LEFTMOUSE:
case RIGHTMOUSE:
case MIDDLEMOUSE:
-
- /* remove link? */
- if(link->tonode==NULL || link->fromnode==NULL) {
- nodeRemLink(snode->edittree, link);
- }
- else {
+ if(link->tosock && link->fromsock) {
/* send changed events for original tonode and new */
- if(link->tonode)
+ if(link->tonode)
NodeTagChanged(snode->edittree, link->tonode);
/* we might need to remove a link */
- if(in_out==SOCK_OUT) node_remove_extra_links(snode, link->tosock, link);
+ if(in_out==SOCK_OUT)
+ node_remove_extra_links(snode, link->tosock, link);
}
+ else if (outside_group_rect(snode) && (link->tonode || link->fromnode)) {
+ /* automatically add new group socket */
+ if (link->tonode && link->tosock) {
+ link->fromsock = nodeGroupExposeSocket(snode->edittree, link->tosock, SOCK_IN);
+ link->fromnode = NULL;
+ }
+ else if (link->fromnode && link->fromsock) {
+ link->tosock = nodeGroupExposeSocket(snode->edittree, link->fromsock, SOCK_OUT);
+ link->tonode = NULL;
+ }
+ }
+ else
+ nodeRemLink(snode->edittree, link);
ntreeSolveOrder(snode->edittree);
node_tree_verify_groups(snode->nodetree);
diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c
index 147a0825229..4d4896d65a0 100644
--- a/source/blender/editors/space_node/node_header.c
+++ b/source/blender/editors/space_node/node_header.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h
index eb7e1209801..31eb7a7bfd2 100644
--- a/source/blender/editors/space_node/node_intern.h
+++ b/source/blender/editors/space_node/node_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -103,6 +103,10 @@ void NODE_OT_links_cut(struct wmOperatorType *ot);
void NODE_OT_group_make(struct wmOperatorType *ot);
void NODE_OT_group_ungroup(struct wmOperatorType *ot);
void NODE_OT_group_edit(struct wmOperatorType *ot);
+void NODE_OT_group_socket_add(struct wmOperatorType *ot);
+void NODE_OT_group_socket_remove(struct wmOperatorType *ot);
+void NODE_OT_group_socket_move_up(struct wmOperatorType *ot);
+void NODE_OT_group_socket_move_down(struct wmOperatorType *ot);
void NODE_OT_mute_toggle(struct wmOperatorType *ot);
void NODE_OT_hide_toggle(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c
index 9c2b6f0274d..e563ae4e3f4 100644
--- a/source/blender/editors/space_node/node_ops.c
+++ b/source/blender/editors/space_node/node_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -74,6 +74,10 @@ void node_operatortypes(void)
WM_operatortype_append(NODE_OT_group_make);
WM_operatortype_append(NODE_OT_group_ungroup);
WM_operatortype_append(NODE_OT_group_edit);
+ WM_operatortype_append(NODE_OT_group_socket_add);
+ WM_operatortype_append(NODE_OT_group_socket_remove);
+ WM_operatortype_append(NODE_OT_group_socket_move_up);
+ WM_operatortype_append(NODE_OT_group_socket_move_down);
WM_operatortype_append(NODE_OT_link_viewer);
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index b53ac07aab3..bcc69c1f260 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -288,7 +288,7 @@ static int node_select_linked_to_exec(bContext *C, wmOperator *UNUSED(op))
node->flag &= ~NODE_TEST;
for (link=snode->edittree->links.first; link; link=link->next) {
- if (link->fromnode->flag & NODE_SELECT)
+ if (link->fromnode && link->tonode && (link->fromnode->flag & NODE_SELECT))
link->tonode->flag |= NODE_TEST;
}
@@ -328,7 +328,7 @@ static int node_select_linked_from_exec(bContext *C, wmOperator *UNUSED(op))
node->flag &= ~NODE_TEST;
for(link=snode->edittree->links.first; link; link=link->next) {
- if(link->tonode->flag & NODE_SELECT)
+ if(link->fromnode && link->tonode && (link->tonode->flag & NODE_SELECT))
link->fromnode->flag |= NODE_TEST;
}
diff --git a/source/blender/editors/space_node/node_state.c b/source/blender/editors/space_node/node_state.c
index 332080f023c..abb3d83d336 100644
--- a/source/blender/editors/space_node/node_state.c
+++ b/source/blender/editors/space_node/node_state.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index db4d02a776c..4bccd14bb42 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_outliner/CMakeLists.txt b/source/blender/editors/space_outliner/CMakeLists.txt
index 6f3cafd81f8..6dc5792ad0c 100644
--- a/source/blender/editors/space_outliner/CMakeLists.txt
+++ b/source/blender/editors/space_outliner/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../imbuf
../../makesdna
diff --git a/source/blender/editors/space_outliner/SConscript b/source/blender/editors/space_outliner/SConscript
index a7f487a4149..ab0b8582d33 100644
--- a/source/blender/editors/space_outliner/SConscript
+++ b/source/blender/editors/space_outliner/SConscript
@@ -4,7 +4,7 @@ Import ('env')
sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
-incs += ' ../../windowmanager #/intern/guardedalloc ../../makesrna'
+incs += ' ../../windowmanager #/intern/guardedalloc ../../makesrna ../../blenloader'
incs += ' #/extern/glew/include'
env.BlenderLib ( 'bf_editors_space_outliner', sources, Split(incs), [], libtype=['core'], priority=[60] )
diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c
index b0b89716222..60e4f29b2ba 100644
--- a/source/blender/editors/space_outliner/outliner.c
+++ b/source/blender/editors/space_outliner/outliner.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h
index cf29bfb4371..5f9165a6a31 100644
--- a/source/blender/editors/space_outliner/outliner_intern.h
+++ b/source/blender/editors/space_outliner/outliner_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_outliner/outliner_ops.c b/source/blender/editors/space_outliner/outliner_ops.c
index f7dd03ec545..da1b831aefc 100644
--- a/source/blender/editors/space_outliner/outliner_ops.c
+++ b/source/blender/editors/space_outliner/outliner_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c
index 66404287693..a4900eb919b 100644
--- a/source/blender/editors/space_outliner/space_outliner.c
+++ b/source/blender/editors/space_outliner/space_outliner.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_script/CMakeLists.txt b/source/blender/editors/space_script/CMakeLists.txt
index 1427e814b41..165a43568e4 100644
--- a/source/blender/editors/space_script/CMakeLists.txt
+++ b/source/blender/editors/space_script/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/space_script/SConscript b/source/blender/editors/space_script/SConscript
index 8c75b999bc0..c30e204f6f4 100644
--- a/source/blender/editors/space_script/SConscript
+++ b/source/blender/editors/space_script/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../makesrna'
+incs += ' ../../makesrna ../../blenloader'
incs += ' ../../python'
defs = []
diff --git a/source/blender/editors/space_script/script_edit.c b/source/blender/editors/space_script/script_edit.c
index 3da5b48db8e..aff9774b2a9 100644
--- a/source/blender/editors/space_script/script_edit.c
+++ b/source/blender/editors/space_script/script_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_script/script_header.c b/source/blender/editors/space_script/script_header.c
index 35f3ad0596f..278b07408cb 100644
--- a/source/blender/editors/space_script/script_header.c
+++ b/source/blender/editors/space_script/script_header.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_script/script_intern.h b/source/blender/editors/space_script/script_intern.h
index ed625bb8ec6..28d80b76705 100644
--- a/source/blender/editors/space_script/script_intern.h
+++ b/source/blender/editors/space_script/script_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_script/script_ops.c b/source/blender/editors/space_script/script_ops.c
index a52ffbd0808..c0b4979e80e 100644
--- a/source/blender/editors/space_script/script_ops.c
+++ b/source/blender/editors/space_script/script_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_script/space_script.c b/source/blender/editors/space_script/space_script.c
index 502b01c366a..64e0307aec9 100644
--- a/source/blender/editors/space_script/space_script.c
+++ b/source/blender/editors/space_script/space_script.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_sequencer/CMakeLists.txt b/source/blender/editors/space_sequencer/CMakeLists.txt
index 9772361e367..d162ac2f4fc 100644
--- a/source/blender/editors/space_sequencer/CMakeLists.txt
+++ b/source/blender/editors/space_sequencer/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../imbuf
../../makesdna
diff --git a/source/blender/editors/space_sequencer/SConscript b/source/blender/editors/space_sequencer/SConscript
index 7a3fb6982ef..65bbf900556 100644
--- a/source/blender/editors/space_sequencer/SConscript
+++ b/source/blender/editors/space_sequencer/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../blenfont ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../makesrna'
+incs += ' ../../makesrna ../../blenloader'
incs += ' #/intern/audaspace/intern'
env.BlenderLib ( 'bf_editors_space_sequencer', sources, Split(incs), [], libtype=['core'], priority=[100] )
diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c
index 24142e0b898..9e5f6a1d065 100644
--- a/source/blender/editors/space_sequencer/sequencer_add.c
+++ b/source/blender/editors/space_sequencer/sequencer_add.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/space_sequencer/sequencer_buttons.c b/source/blender/editors/space_sequencer/sequencer_buttons.c
index ee0a5d69113..956dfda1764 100644
--- a/source/blender/editors/space_sequencer/sequencer_buttons.c
+++ b/source/blender/editors/space_sequencer/sequencer_buttons.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index 8b3240e91c8..b344077a69a 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 39a81e7481e..b0547ff9994 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h
index 3e47368ef3c..e0266e88bc9 100644
--- a/source/blender/editors/space_sequencer/sequencer_intern.h
+++ b/source/blender/editors/space_sequencer/sequencer_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_sequencer/sequencer_scopes.c b/source/blender/editors/space_sequencer/sequencer_scopes.c
index b8b34eacdc0..87ad27403da 100644
--- a/source/blender/editors/space_sequencer/sequencer_scopes.c
+++ b/source/blender/editors/space_sequencer/sequencer_scopes.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c
index 3b4312cda2b..7a6f5f0890b 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c
index 5323c3d064e..4816de46511 100644
--- a/source/blender/editors/space_sequencer/space_sequencer.c
+++ b/source/blender/editors/space_sequencer/space_sequencer.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_sound/CMakeLists.txt b/source/blender/editors/space_sound/CMakeLists.txt
index df148e0fd91..d0054836381 100644
--- a/source/blender/editors/space_sound/CMakeLists.txt
+++ b/source/blender/editors/space_sound/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/space_sound/SConscript b/source/blender/editors/space_sound/SConscript
index e4fffb53e4c..d76fb7939ea 100644
--- a/source/blender/editors/space_sound/SConscript
+++ b/source/blender/editors/space_sound/SConscript
@@ -4,6 +4,6 @@ Import ('env')
sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
-incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
+incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include ../../blenloader'
env.BlenderLib ( 'bf_editors_space_sound', sources, Split(incs), [], libtype=['core'], priority=[75] )
diff --git a/source/blender/editors/space_sound/sound_header.c b/source/blender/editors/space_sound/sound_header.c
index 60bf0775f5e..a78990d74ff 100644
--- a/source/blender/editors/space_sound/sound_header.c
+++ b/source/blender/editors/space_sound/sound_header.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_sound/sound_intern.h b/source/blender/editors/space_sound/sound_intern.h
index 7117e7d6df9..485876e20db 100644
--- a/source/blender/editors/space_sound/sound_intern.h
+++ b/source/blender/editors/space_sound/sound_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_sound/space_sound.c b/source/blender/editors/space_sound/space_sound.c
index 4ae452850a7..8218ce09ad8 100644
--- a/source/blender/editors/space_sound/space_sound.c
+++ b/source/blender/editors/space_sound/space_sound.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_text/CMakeLists.txt b/source/blender/editors/space_text/CMakeLists.txt
index 8c18630ab7d..21481dc6543 100644
--- a/source/blender/editors/space_text/CMakeLists.txt
+++ b/source/blender/editors/space_text/CMakeLists.txt
@@ -23,6 +23,7 @@ set(INC
../include
../../blenfont
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/space_text/SConscript b/source/blender/editors/space_text/SConscript
index 6d2816b7834..6ad6427f1d3 100644
--- a/source/blender/editors/space_text/SConscript
+++ b/source/blender/editors/space_text/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('*.c')
defs = []
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../python ../../makesrna ../../blenfont'
+incs += ' ../../python ../../makesrna ../../blenfont ../../blenloader'
if env['WITH_BF_PYTHON']:
defs.append('WITH_PYTHON')
diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c
index 8ed49b5945d..93240d3f318 100644
--- a/source/blender/editors/space_text/space_text.c
+++ b/source/blender/editors/space_text/space_text.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_text/text_draw.c b/source/blender/editors/space_text/text_draw.c
index b3e6920aa29..c047d99c894 100644
--- a/source/blender/editors/space_text/text_draw.c
+++ b/source/blender/editors/space_text/text_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_text/text_header.c b/source/blender/editors/space_text/text_header.c
index 3b04b056f4e..8e209365c0c 100644
--- a/source/blender/editors/space_text/text_header.c
+++ b/source/blender/editors/space_text/text_header.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_text/text_intern.h b/source/blender/editors/space_text/text_intern.h
index f18a3245f9b..c8e973811e2 100644
--- a/source/blender/editors/space_text/text_intern.h
+++ b/source/blender/editors/space_text/text_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c
index d8cbe93012d..effe2d6be1a 100644
--- a/source/blender/editors/space_text/text_ops.c
+++ b/source/blender/editors/space_text/text_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -565,6 +565,35 @@ static int run_script_poll(bContext *C)
return (CTX_data_edit_text(C) != NULL);
}
+static int run_script(bContext *C, ReportList *reports)
+{
+ Text *text= CTX_data_edit_text(C);
+ const short is_live= (reports == NULL);
+
+ /* only for comparison */
+ void *curl_prev= text->curl;
+ int curc_prev= text->curc;
+
+ if (BPY_text_exec(C, text, reports, !is_live)) {
+ if(is_live) {
+ /* for nice live updates */
+ WM_event_add_notifier(C, NC_WINDOW|NA_EDITED, NULL);
+ }
+ return OPERATOR_FINISHED;
+ }
+
+ /* Dont report error messages while live editing */
+ if(!is_live) {
+ if(text->curl != curl_prev || curc_prev != text->curc) {
+ text_update_cursor_moved(C);
+ WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
+ }
+
+ BKE_report(reports, RPT_ERROR, "Python script fail, look in the console for now...");
+ }
+ return OPERATOR_CANCELLED;
+}
+
static int run_script_exec(bContext *C, wmOperator *op)
{
#ifndef WITH_PYTHON
@@ -574,17 +603,7 @@ static int run_script_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
#else
- Text *text= CTX_data_edit_text(C);
- SpaceText *st= CTX_wm_space_text(C);
-
- if (BPY_text_exec(C, text, op->reports))
- return OPERATOR_FINISHED;
-
- /* Dont report error messages while live editing */
- if(!(st && st->live_edit))
- BKE_report(op->reports, RPT_ERROR, "Python script fail, look in the console for now...");
-
- return OPERATOR_CANCELLED;
+ return run_script(C, op->reports);
#endif
}
@@ -767,7 +786,7 @@ static int paste_exec(bContext *C, wmOperator *op)
/* run the script while editing, evil but useful */
if(CTX_wm_space_text(C)->live_edit)
- run_script_exec(C, op);
+ run_script(C, NULL);
return OPERATOR_FINISHED;
}
@@ -824,7 +843,7 @@ void TEXT_OT_copy(wmOperatorType *ot)
/******************* cut operator *********************/
-static int cut_exec(bContext *C, wmOperator *op)
+static int cut_exec(bContext *C, wmOperator *UNUSED(op))
{
Text *text= CTX_data_edit_text(C);
@@ -838,7 +857,7 @@ static int cut_exec(bContext *C, wmOperator *op)
/* run the script while editing, evil but useful */
if(CTX_wm_space_text(C)->live_edit)
- run_script_exec(C, op);
+ run_script(C, NULL);
return OPERATOR_FINISHED;
}
@@ -1974,7 +1993,7 @@ static int delete_exec(bContext *C, wmOperator *op)
/* run the script while editing, evil but useful */
if(CTX_wm_space_text(C)->live_edit)
- run_script_exec(C, op);
+ run_script(C, NULL);
return OPERATOR_FINISHED;
}
@@ -2767,7 +2786,7 @@ static int insert_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* run the script while editing, evil but useful */
if(ret==OPERATOR_FINISHED && CTX_wm_space_text(C)->live_edit)
- run_script_exec(C, op);
+ run_script(C, NULL);
return ret;
}
diff --git a/source/blender/editors/space_text/text_python.c b/source/blender/editors/space_text/text_python.c
index a0d3264aa0d..b60a6a1abe4 100644
--- a/source/blender/editors/space_text/text_python.c
+++ b/source/blender/editors/space_text/text_python.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_time/CMakeLists.txt b/source/blender/editors/space_time/CMakeLists.txt
index d3f0fccd19a..c8727084548 100644
--- a/source/blender/editors/space_time/CMakeLists.txt
+++ b/source/blender/editors/space_time/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/space_time/SConscript b/source/blender/editors/space_time/SConscript
index eb3a43a87b7..c08339ba692 100644
--- a/source/blender/editors/space_time/SConscript
+++ b/source/blender/editors/space_time/SConscript
@@ -5,6 +5,6 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../makesrna'
+incs += ' ../../makesrna ../../blenloader'
env.BlenderLib ( 'bf_editors_space_time', sources, Split(incs), [], libtype=['core'], priority=[65] )
diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c
index f879b2b996d..65902c692c4 100644
--- a/source/blender/editors/space_time/space_time.c
+++ b/source/blender/editors/space_time/space_time.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -638,7 +638,7 @@ static SpaceLink *time_duplicate(SpaceLink *sl)
SpaceTime *stime= (SpaceTime *)sl;
SpaceTime *stimen= MEM_dupallocN(stime);
- time_cache_free(stimen);
+ stimen->caches.first = stimen->caches.last = NULL;
return (SpaceLink *)stimen;
}
diff --git a/source/blender/editors/space_time/time_intern.h b/source/blender/editors/space_time/time_intern.h
index 31164d0c27a..f6faeb8ffda 100644
--- a/source/blender/editors/space_time/time_intern.h
+++ b/source/blender/editors/space_time/time_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_time/time_ops.c b/source/blender/editors/space_time/time_ops.c
index 167eabcdd08..3abee9df5a0 100644
--- a/source/blender/editors/space_time/time_ops.c
+++ b/source/blender/editors/space_time/time_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_userpref/CMakeLists.txt b/source/blender/editors/space_userpref/CMakeLists.txt
index 1ea1806fb95..68fe9d3e04c 100644
--- a/source/blender/editors/space_userpref/CMakeLists.txt
+++ b/source/blender/editors/space_userpref/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/space_userpref/SConscript b/source/blender/editors/space_userpref/SConscript
index 3ba1543b840..5c52e6f4c41 100644
--- a/source/blender/editors/space_userpref/SConscript
+++ b/source/blender/editors/space_userpref/SConscript
@@ -4,7 +4,7 @@ Import ('env')
sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf ../../blenfont'
-incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
+incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include ../../blenloader'
defs = []
diff --git a/source/blender/editors/space_userpref/space_userpref.c b/source/blender/editors/space_userpref/space_userpref.c
index 486713ab890..96881fde320 100644
--- a/source/blender/editors/space_userpref/space_userpref.c
+++ b/source/blender/editors/space_userpref/space_userpref.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_userpref/userpref_intern.h b/source/blender/editors/space_userpref/userpref_intern.h
index 206c8efe70e..ca1f231df00 100644
--- a/source/blender/editors/space_userpref/userpref_intern.h
+++ b/source/blender/editors/space_userpref/userpref_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_userpref/userpref_ops.c b/source/blender/editors/space_userpref/userpref_ops.c
index c959e9fcafb..29449202ed9 100644
--- a/source/blender/editors/space_userpref/userpref_ops.c
+++ b/source/blender/editors/space_userpref/userpref_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_view3d/CMakeLists.txt b/source/blender/editors/space_view3d/CMakeLists.txt
index 1f47a25ad92..fc9dd8c9bcc 100644
--- a/source/blender/editors/space_view3d/CMakeLists.txt
+++ b/source/blender/editors/space_view3d/CMakeLists.txt
@@ -23,6 +23,7 @@ set(INC
../include
../../blenfont
../../blenkernel
+ ../../blenloader
../../blenlib
../../gpu
../../imbuf
diff --git a/source/blender/editors/space_view3d/SConscript b/source/blender/editors/space_view3d/SConscript
index bb32f8b926e..3df59d485d5 100644
--- a/source/blender/editors/space_view3d/SConscript
+++ b/source/blender/editors/space_view3d/SConscript
@@ -6,7 +6,7 @@ defs = [ 'GLEW_STATIC' ]
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../render/extern/include'
+incs += ' ../../render/extern/include ../../blenloader'
incs += ' ../../gpu ../../makesrna ../../blenfont'
incs += ' #/intern/smoke/extern'
incs += ' #source/kernel/gen_system'
diff --git a/source/blender/editors/space_view3d/drawanimviz.c b/source/blender/editors/space_view3d/drawanimviz.c
index 7c07f99b8ea..3c72547bd66 100644
--- a/source/blender/editors/space_view3d/drawanimviz.c
+++ b/source/blender/editors/space_view3d/drawanimviz.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c
index f16078ba454..1f0ee30c9e9 100644
--- a/source/blender/editors/space_view3d/drawarmature.c
+++ b/source/blender/editors/space_view3d/drawarmature.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c
index 59d9d1bb0b4..19726f02665 100644
--- a/source/blender/editors/space_view3d/drawmesh.c
+++ b/source/blender/editors/space_view3d/drawmesh.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index df431f06ef6..031607e3084 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_view3d/drawvolume.c b/source/blender/editors/space_view3d/drawvolume.c
index 1479dc950c9..a2eefa2aad1 100644
--- a/source/blender/editors/space_view3d/drawvolume.c
+++ b/source/blender/editors/space_view3d/drawvolume.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index ef2fa693cb1..96ef339a9b9 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c
index e880e4c3610..0e4e1ad7266 100644
--- a/source/blender/editors/space_view3d/view3d_buttons.c
+++ b/source/blender/editors/space_view3d/view3d_buttons.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 006605b08f9..4d591645679 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -850,7 +850,7 @@ static void draw_selected_name(Scene *scene, Object *ob, View3D *v3d)
BLF_draw_default(offset, 10, 0.0f, info, sizeof(info)-1);
}
-static void view3d_get_viewborder_size(Scene *scene, ARegion *ar, float size_r[2])
+void view3d_viewborder_size_get(Scene *scene, ARegion *ar, float size_r[2])
{
float winmax= MAX2(ar->winx, ar->winy);
float aspect= (scene->r.xsch*scene->r.xasp) / (scene->r.ysch*scene->r.yasp);
@@ -869,7 +869,7 @@ void view3d_calc_camera_border(Scene *scene, ARegion *ar, RegionView3D *rv3d, Vi
float zoomfac, size[2];
float dx= 0.0f, dy= 0.0f;
- view3d_get_viewborder_size(scene, ar, size);
+ view3d_viewborder_size_get(scene, ar, size);
if (rv3d == NULL)
rv3d = ar->regiondata;
@@ -917,19 +917,6 @@ void view3d_calc_camera_border(Scene *scene, ARegion *ar, RegionView3D *rv3d, Vi
}
}
-/* sets the view to 1:1 camera/render-pixel */
-static void view3d_set_1_to_1_viewborder(Scene *scene, ARegion *ar)
-{
- RegionView3D *rv3d= ar->regiondata;
- float size[2];
- int im_width= (scene->r.size*scene->r.xsch)/100;
-
- view3d_get_viewborder_size(scene, ar, size);
-
- rv3d->camzoom= (sqrt(4.0*im_width/size[0]) - M_SQRT2)*50.0;
- rv3d->camzoom= CLAMPIS(rv3d->camzoom, RV3D_CAMZOOM_MIN, RV3D_CAMZOOM_MAX);
-}
-
static void drawviewborder(Scene *scene, ARegion *ar, View3D *v3d)
{
float fac, a;
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index 7842707d7e8..0a3ecd735f0 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -1843,6 +1843,47 @@ void VIEW3D_OT_zoom_border(wmOperatorType *ot)
RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX);
}
+
+/* sets the view to 1:1 camera/render-pixel */
+static void view3d_set_1_to_1_viewborder(Scene *scene, ARegion *ar)
+{
+ RegionView3D *rv3d= ar->regiondata;
+ float size[2];
+ int im_width= (scene->r.size*scene->r.xsch)/100;
+
+ view3d_viewborder_size_get(scene, ar, size);
+
+ rv3d->camzoom= (sqrt(4.0*im_width/size[0]) - M_SQRT2)*50.0;
+ rv3d->camzoom= CLAMPIS(rv3d->camzoom, RV3D_CAMZOOM_MIN, RV3D_CAMZOOM_MAX);
+}
+
+static int view3d_zoom_1_to_1_camera_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ Scene *scene= CTX_data_scene(C);
+ ARegion *ar= CTX_wm_region(C);
+
+ view3d_set_1_to_1_viewborder(scene, ar);
+
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, CTX_wm_view3d(C));
+
+ return OPERATOR_FINISHED;
+}
+
+void VIEW3D_OT_zoom_camera_1_to_1(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Zoom Camera 1:1";
+ ot->description = "Match the camera to 1:1 to the render output";
+ ot->idname= "VIEW3D_OT_zoom_camera_1_to_1";
+
+ /* api callbacks */
+ ot->exec= view3d_zoom_1_to_1_camera_exec;
+ ot->poll= view3d_camera_active_poll;
+
+ /* flags */
+ ot->flag= 0;
+}
+
/* ********************* Changing view operator ****************** */
static EnumPropertyItem prop_view_items[] = {
diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c
index 1e856ad49f7..7a4fb86a4dd 100644
--- a/source/blender/editors/space_view3d/view3d_fly.c
+++ b/source/blender/editors/space_view3d/view3d_fly.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c
index 2656127d73c..82605439b33 100644
--- a/source/blender/editors/space_view3d/view3d_header.c
+++ b/source/blender/editors/space_view3d/view3d_header.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -206,8 +206,6 @@ static int view3d_layers_exec(bContext *C, wmOperator *op)
for (base= scene->base.first; base; base= base->next) {
if(base->lay & oldlay)
base->object->recalc= OB_RECALC_OB|OB_RECALC_DATA;
- if(base->lay & oldlay)
- printf("recalc %s\n", base->object->id.name+2);
}
ED_area_tag_redraw(sa);
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index b7efa7fced7..a2a8f9afdb8 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -63,6 +63,7 @@ void view3d_operatortypes(void);
/* view3d_edit.c */
void VIEW3D_OT_zoom(struct wmOperatorType *ot);
+void VIEW3D_OT_zoom_camera_1_to_1(struct wmOperatorType *ot);
void VIEW3D_OT_move(struct wmOperatorType *ot);
void VIEW3D_OT_rotate(struct wmOperatorType *ot);
void VIEW3D_OT_view_all(struct wmOperatorType *ot);
@@ -126,6 +127,7 @@ void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d);
void view3d_clr_clipping(void);
void view3d_set_clipping(RegionView3D *rv3d);
void add_view3d_after(ListBase *lb, Base *base, int flag);
+void view3d_viewborder_size_get(struct Scene *scene, struct ARegion *ar, float size_r[2]);
void circf(float x, float y, float rad);
void circ(float x, float y, float rad);
diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c
index cb6eee26df5..8906fb6fb8e 100644
--- a/source/blender/editors/space_view3d/view3d_ops.c
+++ b/source/blender/editors/space_view3d/view3d_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -57,6 +57,7 @@ void view3d_operatortypes(void)
WM_operatortype_append(VIEW3D_OT_rotate);
WM_operatortype_append(VIEW3D_OT_move);
WM_operatortype_append(VIEW3D_OT_zoom);
+ WM_operatortype_append(VIEW3D_OT_zoom_camera_1_to_1);
WM_operatortype_append(VIEW3D_OT_view_all);
WM_operatortype_append(VIEW3D_OT_viewnumpad);
WM_operatortype_append(VIEW3D_OT_view_orbit);
@@ -147,6 +148,8 @@ void view3d_keymap(wmKeyConfig *keyconf)
RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", WHEELINMOUSE, KM_PRESS, 0, 0)->ptr, "delta", 1);
RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", WHEELOUTMOUSE, KM_PRESS, 0, 0)->ptr, "delta", -1);
+ WM_keymap_add_item(keymap, "VIEW3D_OT_zoom_camera_1_to_1", PADENTER, KM_PRESS, KM_SHIFT, 0);
+
WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_camera", HOMEKEY, KM_PRESS, 0, 0); /* only with camera view */
RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", HOMEKEY, KM_PRESS, 0, 0)->ptr, "center", 0); /* only without camera view */
RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", CKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "center", 1);
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index 70d77f4e489..4aa64733875 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -1787,7 +1787,10 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op)
}
break;
case OB_LATTICE:
- ret= do_lattice_box_select(&vc, &rect, select, extend);
+ ret= do_lattice_box_select(&vc, &rect, select, extend);
+ if(ret & OPERATOR_FINISHED) {
+ WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc.obedit->data);
+ }
break;
default:
assert(!"border select on incorrect object type");
diff --git a/source/blender/editors/space_view3d/view3d_snap.c b/source/blender/editors/space_view3d/view3d_snap.c
index e90998da21c..4c007bb1aac 100644
--- a/source/blender/editors/space_view3d/view3d_snap.c
+++ b/source/blender/editors/space_view3d/view3d_snap.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c
index 3f69ce3e8a8..bfe324df51e 100644
--- a/source/blender/editors/space_view3d/view3d_toolbar.c
+++ b/source/blender/editors/space_view3d/view3d_toolbar.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index 04f9f2d11d4..36485b9e20e 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/transform/CMakeLists.txt b/source/blender/editors/transform/CMakeLists.txt
index c68b758527b..6758b94f53f 100644
--- a/source/blender/editors/transform/CMakeLists.txt
+++ b/source/blender/editors/transform/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/transform/SConscript b/source/blender/editors/transform/SConscript
index c1fe5d6889a..edc2156a07b 100644
--- a/source/blender/editors/transform/SConscript
+++ b/source/blender/editors/transform/SConscript
@@ -6,6 +6,6 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
incs += ' ../../render/extern/include'
-incs += ' ../../gpu ../../makesrna'
+incs += ' ../../gpu ../../makesrna ../../blenloader'
env.BlenderLib ( 'bf_editors_transform', sources, Split(incs), [], libtype=['core'], priority=[40] )
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 0d5b79260e8..3811299c3ce 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -3143,7 +3143,7 @@ static void applyRotation(TransInfo *t, float angle, float axis[3])
int Rotation(TransInfo *t, short UNUSED(mval[2]))
{
- char str[64];
+ char str[128];
float final;
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index b4a25416dfe..71480ce5e7d 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c
index 23899398921..a3247b72115 100644
--- a/source/blender/editors/transform/transform_constraints.c
+++ b/source/blender/editors/transform/transform_constraints.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index dbed27e95a1..d1bf030e17c 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -4898,6 +4898,14 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
arm= ob->data;
pose= ob->pose;
+ if((t->flag & T_AUTOIK) && (t->options & CTX_AUTOCONFIRM)) {
+ /* when running transform non-interactively (operator exec),
+ * we need to update the pose otherwise no updates get called during
+ * transform and the auto-ik is not applied. see [#26164] */
+ struct Object *ob=t->poseobj;
+ where_is_pose(t->scene, ob);
+ }
+
/* if target-less IK grabbing, we calculate the pchan transforms and clear flag */
if (!cancelled && t->mode==TFM_TRANSLATION)
targetless_ik= apply_targetless_ik(ob);
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 8f7c1001fe8..7e44632ecb9 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/transform/transform_input.c b/source/blender/editors/transform/transform_input.c
index 6a9f89362f1..486fed91e3e 100644
--- a/source/blender/editors/transform/transform_input.c
+++ b/source/blender/editors/transform/transform_input.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c
index 49080b86e87..6483d8c1f83 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/transform/transform_ndofinput.c b/source/blender/editors/transform/transform_ndofinput.c
index ae12daa29ad..f9ac1bd38d1 100644
--- a/source/blender/editors/transform/transform_ndofinput.c
+++ b/source/blender/editors/transform/transform_ndofinput.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index 5c42a59ac69..e1dd0191c0d 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -35,6 +35,7 @@
#include "BKE_context.h"
#include "BKE_global.h"
+#include "BKE_armature.h"
#include "WM_api.h"
#include "WM_types.h"
diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c
index f10eb920c34..0962a6d85f9 100644
--- a/source/blender/editors/transform/transform_orientations.c
+++ b/source/blender/editors/transform/transform_orientations.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index ab1cbab9a23..164876078f1 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -83,7 +83,7 @@
//#include "blendef.h" /* for selection modes */
-#define USE_BVH_FACE_PROJECT
+#define USE_BVH_FACE_SNAP
/********************* PROTOTYPES ***********************/
diff --git a/source/blender/editors/util/CMakeLists.txt b/source/blender/editors/util/CMakeLists.txt
index 38c0dd7f0ba..0be6ccaee2c 100644
--- a/source/blender/editors/util/CMakeLists.txt
+++ b/source/blender/editors/util/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/util/SConscript b/source/blender/editors/util/SConscript
index 74ca2c89ba2..a694b211ca4 100644
--- a/source/blender/editors/util/SConscript
+++ b/source/blender/editors/util/SConscript
@@ -6,5 +6,6 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
incs += ' ../../makesrna'
+incs += ' ../../blenloader'
env.BlenderLib ( 'bf_editors_util', sources, Split(incs), [], libtype=['core'], priority=[130] )
diff --git a/source/blender/editors/util/crazyspace.c b/source/blender/editors/util/crazyspace.c
index 20b7c255922..20152f6681b 100644
--- a/source/blender/editors/util/crazyspace.c
+++ b/source/blender/editors/util/crazyspace.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/util/ed_util.c b/source/blender/editors/util/ed_util.c
index 081bda60ba2..2f3392d7f8c 100644
--- a/source/blender/editors/util/ed_util.c
+++ b/source/blender/editors/util/ed_util.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/util/editmode_undo.c b/source/blender/editors/util/editmode_undo.c
index 767a2adacb2..08f801b8039 100644
--- a/source/blender/editors/util/editmode_undo.c
+++ b/source/blender/editors/util/editmode_undo.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/util/numinput.c b/source/blender/editors/util/numinput.c
index ccdbe7dfd4e..6ae5963564e 100644
--- a/source/blender/editors/util/numinput.c
+++ b/source/blender/editors/util/numinput.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c
index a992e33e7d6..c2f8ae16cb8 100644
--- a/source/blender/editors/util/undo.c
+++ b/source/blender/editors/util/undo.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -60,9 +60,13 @@
#include "WM_api.h"
#include "WM_types.h"
+#include "RNA_access.h"
+#include "RNA_define.h"
#include "util_intern.h"
+#define MAXUNDONAME 64 /* XXX, make common define */
+
/* ***************** generic undo system ********************* */
void ED_undo_push(bContext *C, const char *str)
@@ -252,6 +256,14 @@ static int ed_undo_exec(bContext *C, wmOperator *UNUSED(op))
return ed_undo_step(C, 1, NULL);
}
+static int ed_undo_push_exec(bContext *C, wmOperator *op)
+{
+ char str[MAXUNDONAME];
+ RNA_string_get(op->ptr, "message", str);
+ ED_undo_push(C, str);
+ return OPERATOR_FINISHED;
+}
+
static int ed_redo_exec(bContext *C, wmOperator *UNUSED(op))
{
return ed_undo_step(C, -1, NULL);
@@ -298,6 +310,19 @@ void ED_OT_undo(wmOperatorType *ot)
ot->poll= ED_operator_screenactive;
}
+void ED_OT_undo_push(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Undo Push";
+ ot->description= "Add an undo state (internal use only)";
+ ot->idname= "ED_OT_undo_push";
+
+ /* api callbacks */
+ ot->exec= ed_undo_push_exec;
+
+ RNA_def_string(ot->srna, "message", "Add an undo step *function may be moved*", MAXUNDONAME, "Undo Message", "");
+}
+
void ED_OT_redo(wmOperatorType *ot)
{
/* identifiers */
diff --git a/source/blender/editors/util/util_intern.h b/source/blender/editors/util/util_intern.h
index b5750c55c87..c448377f6b0 100644
--- a/source/blender/editors/util/util_intern.h
+++ b/source/blender/editors/util/util_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/uvedit/CMakeLists.txt b/source/blender/editors/uvedit/CMakeLists.txt
index 6333eded12e..852b120a826 100644
--- a/source/blender/editors/uvedit/CMakeLists.txt
+++ b/source/blender/editors/uvedit/CMakeLists.txt
@@ -22,6 +22,7 @@
set(INC
../include
../../blenkernel
+ ../../blenloader
../../blenlib
../../makesdna
../../makesrna
diff --git a/source/blender/editors/uvedit/SConscript b/source/blender/editors/uvedit/SConscript
index b472b89d23d..2523de005d0 100644
--- a/source/blender/editors/uvedit/SConscript
+++ b/source/blender/editors/uvedit/SConscript
@@ -5,6 +5,6 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-incs += ' ../../makesrna #/intern/opennl/extern ../../gpu'
+incs += ' ../../makesrna #/intern/opennl/extern ../../gpu ../../blenloader'
env.BlenderLib ( 'bf_editors_uvedit', sources, Split(incs), [], libtype=['core'], priority=[45] )
diff --git a/source/blender/editors/uvedit/uvedit_draw.c b/source/blender/editors/uvedit/uvedit_draw.c
index 1cee7a16b98..ef41ff23c24 100644
--- a/source/blender/editors/uvedit/uvedit_draw.c
+++ b/source/blender/editors/uvedit/uvedit_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/uvedit/uvedit_intern.h b/source/blender/editors/uvedit/uvedit_intern.h
index 2c412697de3..1312c6d9b55 100644
--- a/source/blender/editors/uvedit/uvedit_intern.h
+++ b/source/blender/editors/uvedit/uvedit_intern.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c
index a00a3c59626..e916170a5fa 100644
--- a/source/blender/editors/uvedit/uvedit_ops.c
+++ b/source/blender/editors/uvedit/uvedit_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c
index 3b6581b7893..7e686f818f7 100644
--- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c
+++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/freestyle/intern/system/PythonInterpreter.h b/source/blender/freestyle/intern/system/PythonInterpreter.h
index 379e9a0fdef..24b03bd2dd3 100755
--- a/source/blender/freestyle/intern/system/PythonInterpreter.h
+++ b/source/blender/freestyle/intern/system/PythonInterpreter.h
@@ -79,7 +79,7 @@ class LIB_SYSTEM_EXPORT PythonInterpreter : public Interpreter
int status;
Text *text = add_text(fn, G.main->name);
if (text) {
- status = BPY_text_exec(_context, text, reports);
+ status = BPY_text_exec(_context, text, reports, false);
unlink_text(G.main, text);
free_libblock(&G.main->text, text);
} else {
@@ -110,7 +110,7 @@ class LIB_SYSTEM_EXPORT PythonInterpreter : public Interpreter
BKE_reports_clear(reports);
- if (!BPY_text_exec(_context, text, reports)) {
+ if (!BPY_text_exec(_context, text, reports, false)) {
cout << "\nError executing Python script from PythonInterpreter::interpretText" << endl;
cout << "Name: " << name << endl;
cout << "Errors: " << endl;
@@ -163,7 +163,7 @@ private:
}
}
- BPY_text_exec(_context, text, NULL);
+ BPY_text_exec(_context, text, NULL, false);
// cleaning up
unlink_text(G.main, text);
diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt
index ce1c9c86780..c79206a5641 100644
--- a/source/blender/gpu/CMakeLists.txt
+++ b/source/blender/gpu/CMakeLists.txt
@@ -28,6 +28,7 @@ set(INC
.
../blenlib
../blenkernel
+ ../blenloader
../imbuf
../makesdna
../makesrna
diff --git a/source/blender/gpu/GPU_buffers.h b/source/blender/gpu/GPU_buffers.h
index 4c6e24cde62..7ce166d92bd 100644
--- a/source/blender/gpu/GPU_buffers.h
+++ b/source/blender/gpu/GPU_buffers.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPU_buffers.h
+ * \ingroup gpu
+ */
+
#ifndef __GPU_BUFFERS_H__
#define __GPU_BUFFERS_H__
diff --git a/source/blender/gpu/GPU_draw.h b/source/blender/gpu/GPU_draw.h
index 1f1bbab9abf..18a6f1ba73d 100644
--- a/source/blender/gpu/GPU_draw.h
+++ b/source/blender/gpu/GPU_draw.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPU_draw.h
+ * \ingroup gpu
+ */
+
#ifndef GPU_GAME_H
#define GPU_GAME_H
diff --git a/source/blender/gpu/GPU_extensions.h b/source/blender/gpu/GPU_extensions.h
index 4256d494302..90c99257087 100644
--- a/source/blender/gpu/GPU_extensions.h
+++ b/source/blender/gpu/GPU_extensions.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPU_extensions.h
+ * \ingroup gpu
+ */
+
#ifndef GPU_EXTENSIONS_H
#define GPU_EXTENSIONS_H
diff --git a/source/blender/gpu/GPU_material.h b/source/blender/gpu/GPU_material.h
index bfc74683c9d..f563d8cbe92 100644
--- a/source/blender/gpu/GPU_material.h
+++ b/source/blender/gpu/GPU_material.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPU_material.h
+ * \ingroup gpu
+ */
+
#ifndef __GPU_MATERIAL__
#define __GPU_MATERIAL__
diff --git a/source/blender/gpu/SConscript b/source/blender/gpu/SConscript
index 4f1cdc2ce76..515c7166c2a 100644
--- a/source/blender/gpu/SConscript
+++ b/source/blender/gpu/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('intern/*.c')
defs = [ 'GLEW_STATIC' ]
-incs = '../blenlib ../blenkernel ../makesdna ../include'
+incs = '../blenlib ../blenkernel ../makesdna ../include ../blenloader'
incs += ' #/extern/glew/include #intern/guardedalloc #intern/smoke/extern ../imbuf .'
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c
index eae727798a0..d8de851624c 100644
--- a/source/blender/gpu/intern/gpu_buffers.c
+++ b/source/blender/gpu/intern/gpu_buffers.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c
index 98b09d0e192..6225e5a3acc 100644
--- a/source/blender/gpu/intern/gpu_codegen.c
+++ b/source/blender/gpu/intern/gpu_codegen.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/gpu/intern/gpu_codegen.h b/source/blender/gpu/intern/gpu_codegen.h
index 968e679af0e..3a9fe528345 100644
--- a/source/blender/gpu/intern/gpu_codegen.h
+++ b/source/blender/gpu/intern/gpu_codegen.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c
index e948da2f1ec..c909d83d307 100644
--- a/source/blender/gpu/intern/gpu_draw.c
+++ b/source/blender/gpu/intern/gpu_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c
index c0c3cc128af..cc21572bfa1 100644
--- a/source/blender/gpu/intern/gpu_extensions.c
+++ b/source/blender/gpu/intern/gpu_extensions.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c
index c283e2fd907..732cfed47d1 100644
--- a/source/blender/gpu/intern/gpu_material.c
+++ b/source/blender/gpu/intern/gpu_material.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -776,12 +776,12 @@ static void material_lights(GPUShadeInput *shi, GPUShadeResult *shr)
ListBase *lb = object_duplilist(shi->gpumat->scene, ob);
for(dob=lb->first; dob; dob=dob->next) {
- Object *ob = dob->ob;
-
- if(ob->type==OB_LAMP) {
- copy_m4_m4(ob->obmat, dob->mat);
+ Object *ob_iter = dob->ob;
+
+ if(ob_iter->type==OB_LAMP) {
+ copy_m4_m4(ob_iter->obmat, dob->mat);
- lamp = GPU_lamp_from_blender(shi->gpumat->scene, ob, base->object);
+ lamp = GPU_lamp_from_blender(shi->gpumat->scene, ob_iter, ob);
if(lamp)
shade_one_light(shi, shr, lamp);
}
diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl
index 47f47746cfa..03883fb4f57 100644
--- a/source/blender/gpu/intern/gpu_shader_material.glsl
+++ b/source/blender/gpu/intern/gpu_shader_material.glsl
@@ -1098,8 +1098,13 @@ void mtex_image(vec3 texco, sampler2D ima, out float value, out vec4 color)
void mtex_normal(vec3 texco, sampler2D ima, out vec3 normal)
{
+ // The invert of the red channel is to make
+ // the normal map compliant with the outside world.
+ // It needs to be done because in Blender
+ // the normal used points inward.
+ // Should this ever change this negate must be removed.
vec4 color = texture2D(ima, texco.xy);
- normal = 2.0*(vec3(color.r, -color.g, color.b) - vec3(0.5, -0.5, 0.5));
+ normal = 2.0*(vec3(-color.r, color.g, color.b) - vec3(-0.5, 0.5, 0.5));
}
void mtex_bump_normals_init( vec3 vN, out vec3 vNorg, out vec3 vNacc, out float fPrevMagnitude )
diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl.c b/source/blender/gpu/intern/gpu_shader_material.glsl.c
index cd325cbdb9d..b1557552143 100644
--- a/source/blender/gpu/intern/gpu_shader_material.glsl.c
+++ b/source/blender/gpu/intern/gpu_shader_material.glsl.c
@@ -1,726 +1,734 @@
/* DataToC output of file <gpu_shader_material_glsl> */
-int datatoc_gpu_shader_material_glsl_size= 38717;
+int datatoc_gpu_shader_material_glsl_size= 38950;
char datatoc_gpu_shader_material_glsl[]= {
- 10,102,108,111, 97,116, 32,101,120,112, 95, 98,108,101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10,123,
- 10, 9,114,101,116,117,114,110, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 50, 56, 52, 54, 44, 32,102, 41, 59, 10,
-125, 10, 10,118,111,105,100, 32,114,103, 98, 95,116,111, 95,104,115,118, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116,
- 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 99,109, 97,120, 44, 32, 99,109,105,
-110, 44, 32,104, 44, 32,115, 44, 32,118, 44, 32, 99,100,101,108,116, 97, 59, 10, 9,118,101, 99, 51, 32, 99, 59, 10, 10, 9, 99,
-109, 97,120, 32, 61, 32,109, 97,120, 40,114,103, 98, 91, 48, 93, 44, 32,109, 97,120, 40,114,103, 98, 91, 49, 93, 44, 32,114,103,
- 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,109,105,110, 32, 61, 32,109,105,110, 40,114,103, 98, 91, 48, 93, 44, 32,109,105,110, 40,
-114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,100,101,108,116, 97, 32, 61, 32, 99,109, 97,120,
- 45, 99,109,105,110, 59, 10, 10, 9,118, 32, 61, 32, 99,109, 97,120, 59, 10, 9,105,102, 32, 40, 99,109, 97,120, 33, 61, 48, 46,
- 48, 41, 10, 9, 9,115, 32, 61, 32, 99,100,101,108,116, 97, 47, 99,109, 97,120, 59, 10, 9,101,108,115,101, 32,123, 10, 9, 9,
-115, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 10, 9,105,102, 32, 40,115, 32, 61,
- 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9,
- 9, 99, 32, 61, 32, 40,118,101, 99, 51, 40, 99,109, 97,120, 44, 32, 99,109, 97,120, 44, 32, 99,109, 97,120, 41, 32, 45, 32,114,
-103, 98, 46,120,121,122, 41, 47, 99,100,101,108,116, 97, 59, 10, 10, 9, 9,105,102, 32, 40,114,103, 98, 46,120, 61, 61, 99,109,
- 97,120, 41, 32,104, 32, 61, 32, 99, 91, 50, 93, 32, 45, 32, 99, 91, 49, 93, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,
-114,103, 98, 46,121, 61, 61, 99,109, 97,120, 41, 32,104, 32, 61, 32, 50, 46, 48, 32, 43, 32, 99, 91, 48, 93, 32, 45, 32, 32, 99,
- 91, 50, 93, 59, 10, 9, 9,101,108,115,101, 32,104, 32, 61, 32, 52, 46, 48, 32, 43, 32, 99, 91, 49, 93, 32, 45, 32, 99, 91, 48,
- 93, 59, 10, 10, 9, 9,104, 32, 47, 61, 32, 54, 46, 48, 59, 10, 10, 9, 9,105,102, 32, 40,104, 60, 48, 46, 48, 41, 10, 9, 9,
- 9,104, 32, 43, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,104, 44,
- 32,115, 44, 32,118, 44, 32,114,103, 98, 46,119, 41, 59, 10,125, 10, 10,118,111,105,100, 32,104,115,118, 95,116,111, 95,114,103,
- 98, 40,118,101, 99, 52, 32,104,115,118, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,
-102,108,111, 97,116, 32,105, 44, 32,102, 44, 32,112, 44, 32,113, 44, 32,116, 44, 32,104, 44, 32,115, 44, 32,118, 59, 10, 9,118,
-101, 99, 51, 32,114,103, 98, 59, 10, 10, 9,104, 32, 61, 32,104,115,118, 91, 48, 93, 59, 10, 9,115, 32, 61, 32,104,115,118, 91,
- 49, 93, 59, 10, 9,118, 32, 61, 32,104,115,118, 91, 50, 93, 59, 10, 10, 9,105,102, 40,115, 61, 61, 48, 46, 48, 41, 32,123, 10,
- 9, 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,118, 44, 32,118, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 32,
-123, 10, 9, 9,105,102, 40,104, 61, 61, 49, 46, 48, 41, 10, 9, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 10, 9, 9,
-104, 32, 42, 61, 32, 54, 46, 48, 59, 10, 9, 9,105, 32, 61, 32,102,108,111,111,114, 40,104, 41, 59, 10, 9, 9,102, 32, 61, 32,
-104, 32, 45, 32,105, 59, 10, 9, 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,102, 44, 32,102, 44, 32,102, 41, 59, 10, 9, 9,
-112, 32, 61, 32,118, 42, 40, 49, 46, 48, 45,115, 41, 59, 10, 9, 9,113, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42,102,
- 41, 41, 59, 10, 9, 9,116, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42, 40, 49, 46, 48, 45,102, 41, 41, 41, 59, 10, 9,
- 9, 10, 9, 9,105,102, 32, 40,105, 32, 61, 61, 32, 48, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,
-116, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 49, 46, 48, 41, 32,114,103, 98, 32,
- 61, 32,118,101, 99, 51, 40,113, 44, 32,118, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61,
- 32, 50, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,118, 44, 32,116, 41, 59, 10, 9, 9,101,108,115,
-101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 51, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,113, 44,
- 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 52, 46, 48, 41, 32,114,103, 98, 32, 61, 32,
-118,101, 99, 51, 40,116, 44, 32,112, 44, 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,114,103, 98, 32, 61, 32,118,101, 99, 51,
- 40,118, 44, 32,112, 44, 32,113, 41, 59, 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114,103,
- 98, 44, 32,104,115,118, 46,119, 41, 59, 10,125, 10, 10,102,108,111, 97,116, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101,
- 97,114,114,103, 98, 40,102,108,111, 97,116, 32, 99, 41, 10,123, 10, 9,105,102, 40, 99, 32, 60, 32, 48, 46, 48, 52, 48, 52, 53,
- 41, 10, 9, 9,114,101,116,117,114,110, 32, 40, 99, 32, 60, 32, 48, 46, 48, 41, 63, 32, 48, 46, 48, 58, 32, 99, 32, 42, 32, 40,
- 49, 46, 48, 47, 49, 50, 46, 57, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114,110, 32,112,111,119, 40, 40,
- 99, 32, 43, 32, 48, 46, 48, 53, 53, 41, 42, 40, 49, 46, 48, 47, 49, 46, 48, 53, 53, 41, 44, 32, 50, 46, 52, 41, 59, 10,125, 10,
- 10,102,108,111, 97,116, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40,102,108,111, 97,116, 32, 99,
- 41, 10,123, 10, 9,105,102, 40, 99, 32, 60, 32, 48, 46, 48, 48, 51, 49, 51, 48, 56, 41, 10, 9, 9,114,101,116,117,114,110, 32,
- 40, 99, 32, 60, 32, 48, 46, 48, 41, 63, 32, 48, 46, 48, 58, 32, 99, 32, 42, 32, 49, 50, 46, 57, 50, 59, 10, 9,101,108,115,101,
- 10, 9, 9,114,101,116,117,114,110, 32, 49, 46, 48, 53, 53, 32, 42, 32,112,111,119, 40, 99, 44, 32, 49, 46, 48, 47, 50, 46, 52,
- 41, 32, 45, 32, 48, 46, 48, 53, 53, 59, 10,125, 10, 10,118,111,105,100, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,
-114,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 95,102,114,111,109, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,
- 95,116,111, 41, 10,123, 10, 9, 99,111,108, 95,116,111, 46,114, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,
-114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,114, 41, 59, 10, 9, 99,111,108, 95,116,111, 46,103, 32, 61, 32,115,114,
-103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,103, 41, 59, 10, 9, 99,111,
-108, 95,116,111, 46, 98, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102,
-114,111,109, 46, 98, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 97, 32, 61, 32, 99,111,108, 95,102,114,111,109, 46, 97, 59, 10,
-125, 10, 10,118,111,105,100, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40,118,101, 99, 52, 32, 99,
-111,108, 95,102,114,111,109, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,111,108,
- 95,116,111, 46,114, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102,114,
-111,109, 46,114, 41, 59, 10, 9, 99,111,108, 95,116,111, 46,103, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,
-115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,103, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,108,105,
-110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9, 99,111,
-108, 95,116,111, 46, 97, 32, 61, 32, 99,111,108, 95,102,114,111,109, 46, 97, 59, 10,125, 10, 10, 35,100,101,102,105,110,101, 32,
- 77, 95, 80, 73, 32, 51, 46, 49, 52, 49, 53, 57, 50, 54, 53, 51, 53, 56, 57, 55, 57, 51, 50, 51, 56, 52, 54, 10, 10, 47, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 83, 72, 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99,
- 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 41, 10,123, 10, 9,118, 99,111,
-108, 32, 61, 32,118,101, 99, 52, 40, 97,116,116,118, 99,111,108, 46,120, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99,111,
-108, 46,121, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99,111,108, 46,122, 47, 50, 53, 53, 46, 48, 44, 32, 49, 46, 48, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,117,118, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 50, 32, 97,116,116,117,
-118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,
-117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 10,125,
- 10, 10,118,111,105,100, 32,103,101,111,109, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,109,
- 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32,118,101,
- 99, 50, 32, 97,116,116,117,118, 44, 32,118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51,
- 32,103,108,111, 98, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,108,111, 99, 97,108, 44, 32,111,117,116, 32,118,101, 99,
- 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
-117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,
-111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102,114,111,110,116, 98, 97, 99,107, 41, 10,123, 10, 9,108,111, 99, 97,
-108, 32, 61, 32, 99,111, 59, 10, 9,118,105,101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,111, 99, 97,108, 41,
- 59, 10, 9,103,108,111, 98, 97,108, 32, 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40,108,111, 99,
- 97,108, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,111,114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,111, 59, 10,
- 9,117,118, 95, 97,116,116,114,105, 98,117,116,101, 40, 97,116,116,117,118, 44, 32,117,118, 41, 59, 10, 9,110,111,114,109, 97,
-108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114, 41, 59, 9, 47, 42, 32, 98,108,101,110,100,101,114, 32,
-114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,118, 99,111,
-108, 95, 97,116,116,114,105, 98,117,116,101, 40, 97,116,116,118, 99,111,108, 44, 32,118, 99,111,108, 41, 59, 10, 9,102,114,111,
-110,116, 98, 97, 99,107, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,112,112,105,110,103, 40,118,101,
- 99, 51, 32,118,101, 99, 44, 32,109, 97,116, 52, 32,109, 97,116, 44, 32,118,101, 99, 51, 32,109,105,110,118,101, 99, 44, 32,118,
-101, 99, 51, 32,109, 97,120,118,101, 99, 44, 32,102,108,111, 97,116, 32,100,111,109,105,110, 44, 32,102,108,111, 97,116, 32,100,
-111,109, 97,120, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99,
- 32, 61, 32, 40,109, 97,116, 32, 42, 32,118,101, 99, 52, 40,118,101, 99, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,
-105,102, 40,100,111,109,105,110, 32, 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109, 97,120, 40,
-111,117,116,118,101, 99, 44, 32,109,105,110,118,101, 99, 41, 59, 10, 9,105,102, 40,100,111,109, 97,120, 32, 61, 61, 32, 49, 46,
- 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109,105,110, 40,111,117,116,118,101, 99, 44, 32,109, 97,120,118,101, 99,
- 41, 59, 10,125, 10, 10,118,111,105,100, 32, 99, 97,109,101,114, 97, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,
-101, 99, 51, 32,111,117,116,118,105,101,119, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,101,112,116,104, 44,
- 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,105,115,116, 41, 10,123, 10, 9,111,117,116,100,101,112,116,104, 32,
- 61, 32, 97, 98,115, 40, 99,111, 46,122, 41, 59, 10, 9,111,117,116,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40, 99,
-111, 41, 59, 10, 9,111,117,116,118,105,101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 41, 59, 10,125, 10,
- 10,118,111,105,100, 32,109, 97,116,104, 95, 97,100,100, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116,
- 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,
- 97,108, 32, 61, 32,118, 97,108, 49, 32, 43, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,115,
-117, 98,116,114, 97, 99,116, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,
-111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,
-108, 49, 32, 45, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,117,108,116,105,112,108,121,
- 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111,
- 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 42, 32,118, 97,
-108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32,118, 97,
+ 10,102,108,111, 97,116,
+ 32,101,120,112, 95, 98,108,101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10,123, 10, 9,114,101,116,117,114,110, 32,
+112,111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 50, 56, 52, 54, 44, 32,102, 41, 59, 10,125, 10, 10,118,111,105,100, 32,114,
+103, 98, 95,116,111, 95,104,115,118, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,
+ 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 99,109, 97,120, 44, 32, 99,109,105,110, 44, 32,104, 44, 32,115, 44, 32,
+118, 44, 32, 99,100,101,108,116, 97, 59, 10, 9,118,101, 99, 51, 32, 99, 59, 10, 10, 9, 99,109, 97,120, 32, 61, 32,109, 97,120,
+ 40,114,103, 98, 91, 48, 93, 44, 32,109, 97,120, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41, 41, 59, 10, 9,
+ 99,109,105,110, 32, 61, 32,109,105,110, 40,114,103, 98, 91, 48, 93, 44, 32,109,105,110, 40,114,103, 98, 91, 49, 93, 44, 32,114,
+103, 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,100,101,108,116, 97, 32, 61, 32, 99,109, 97,120, 45, 99,109,105,110, 59, 10, 10, 9,
+118, 32, 61, 32, 99,109, 97,120, 59, 10, 9,105,102, 32, 40, 99,109, 97,120, 33, 61, 48, 46, 48, 41, 10, 9, 9,115, 32, 61, 32,
+ 99,100,101,108,116, 97, 47, 99,109, 97,120, 59, 10, 9,101,108,115,101, 32,123, 10, 9, 9,115, 32, 61, 32, 48, 46, 48, 59, 10,
+ 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 10, 9,105,102, 32, 40,115, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10,
+ 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9, 99, 32, 61, 32, 40,118,101, 99,
+ 51, 40, 99,109, 97,120, 44, 32, 99,109, 97,120, 44, 32, 99,109, 97,120, 41, 32, 45, 32,114,103, 98, 46,120,121,122, 41, 47, 99,
+100,101,108,116, 97, 59, 10, 10, 9, 9,105,102, 32, 40,114,103, 98, 46,120, 61, 61, 99,109, 97,120, 41, 32,104, 32, 61, 32, 99,
+ 91, 50, 93, 32, 45, 32, 99, 91, 49, 93, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,114,103, 98, 46,121, 61, 61, 99,109,
+ 97,120, 41, 32,104, 32, 61, 32, 50, 46, 48, 32, 43, 32, 99, 91, 48, 93, 32, 45, 32, 32, 99, 91, 50, 93, 59, 10, 9, 9,101,108,
+115,101, 32,104, 32, 61, 32, 52, 46, 48, 32, 43, 32, 99, 91, 49, 93, 32, 45, 32, 99, 91, 48, 93, 59, 10, 10, 9, 9,104, 32, 47,
+ 61, 32, 54, 46, 48, 59, 10, 10, 9, 9,105,102, 32, 40,104, 60, 48, 46, 48, 41, 10, 9, 9, 9,104, 32, 43, 61, 32, 49, 46, 48,
+ 59, 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,104, 44, 32,115, 44, 32,118, 44, 32,114,103,
+ 98, 46,119, 41, 59, 10,125, 10, 10,118,111,105,100, 32,104,115,118, 95,116,111, 95,114,103, 98, 40,118,101, 99, 52, 32,104,115,
+118, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,105, 44, 32,
+102, 44, 32,112, 44, 32,113, 44, 32,116, 44, 32,104, 44, 32,115, 44, 32,118, 59, 10, 9,118,101, 99, 51, 32,114,103, 98, 59, 10,
+ 10, 9,104, 32, 61, 32,104,115,118, 91, 48, 93, 59, 10, 9,115, 32, 61, 32,104,115,118, 91, 49, 93, 59, 10, 9,118, 32, 61, 32,
+104,115,118, 91, 50, 93, 59, 10, 10, 9,105,102, 40,115, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 32, 61, 32,118,
+101, 99, 51, 40,118, 44, 32,118, 44, 32,118, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,104, 61,
+ 61, 49, 46, 48, 41, 10, 9, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 10, 9, 9,104, 32, 42, 61, 32, 54, 46, 48, 59,
+ 10, 9, 9,105, 32, 61, 32,102,108,111,111,114, 40,104, 41, 59, 10, 9, 9,102, 32, 61, 32,104, 32, 45, 32,105, 59, 10, 9, 9,
+114,103, 98, 32, 61, 32,118,101, 99, 51, 40,102, 44, 32,102, 44, 32,102, 41, 59, 10, 9, 9,112, 32, 61, 32,118, 42, 40, 49, 46,
+ 48, 45,115, 41, 59, 10, 9, 9,113, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42,102, 41, 41, 59, 10, 9, 9,116, 32, 61,
+ 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42, 40, 49, 46, 48, 45,102, 41, 41, 41, 59, 10, 9, 9, 10, 9, 9,105,102, 32, 40,105,
+ 32, 61, 61, 32, 48, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,116, 44, 32,112, 41, 59, 10, 9, 9,
+101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 49, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,113, 44,
+ 32,118, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 50, 46, 48, 41, 32,114,103, 98,
+ 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,118, 44, 32,116, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61,
+ 61, 32, 51, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,113, 44, 32,118, 41, 59, 10, 9, 9,101,108,
+115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 52, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,116, 44, 32,112,
+ 44, 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,112, 44, 32,113, 41,
+ 59, 10, 9,125, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 44, 32,104,115,118, 46,119, 41,
+ 59, 10,125, 10, 10,102,108,111, 97,116, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40,102,108,111,
+ 97,116, 32, 99, 41, 10,123, 10, 9,105,102, 40, 99, 32, 60, 32, 48, 46, 48, 52, 48, 52, 53, 41, 10, 9, 9,114,101,116,117,114,
+110, 32, 40, 99, 32, 60, 32, 48, 46, 48, 41, 63, 32, 48, 46, 48, 58, 32, 99, 32, 42, 32, 40, 49, 46, 48, 47, 49, 50, 46, 57, 50,
+ 41, 59, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114,110, 32,112,111,119, 40, 40, 99, 32, 43, 32, 48, 46, 48, 53, 53,
+ 41, 42, 40, 49, 46, 48, 47, 49, 46, 48, 53, 53, 41, 44, 32, 50, 46, 52, 41, 59, 10,125, 10, 10,102,108,111, 97,116, 32,108,105,
+110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40,102,108,111, 97,116, 32, 99, 41, 10,123, 10, 9,105,102, 40, 99,
+ 32, 60, 32, 48, 46, 48, 48, 51, 49, 51, 48, 56, 41, 10, 9, 9,114,101,116,117,114,110, 32, 40, 99, 32, 60, 32, 48, 46, 48, 41,
+ 63, 32, 48, 46, 48, 58, 32, 99, 32, 42, 32, 49, 50, 46, 57, 50, 59, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114,110,
+ 32, 49, 46, 48, 53, 53, 32, 42, 32,112,111,119, 40, 99, 44, 32, 49, 46, 48, 47, 50, 46, 52, 41, 32, 45, 32, 48, 46, 48, 53, 53,
+ 59, 10,125, 10, 10,118,111,105,100, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40,118,101, 99, 52,
+ 32, 99,111,108, 95,102,114,111,109, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,
+111,108, 95,116,111, 46,114, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,
+102,114,111,109, 46,114, 41, 59, 10, 9, 99,111,108, 95,116,111, 46,103, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,
+101, 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,103, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,
+115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9,
+ 99,111,108, 95,116,111, 46, 97, 32, 61, 32, 99,111,108, 95,102,114,111,109, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,108,
+105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 95,102,114,111,109, 44, 32,
+111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,111,108, 95,116,111, 46,114, 32, 61, 32,108,
+105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,114, 41, 59, 10, 9, 99,
+111,108, 95,116,111, 46,103, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,
+102,114,111,109, 46,103, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,
+111, 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 97, 32, 61, 32,
+ 99,111,108, 95,102,114,111,109, 46, 97, 59, 10,125, 10, 10, 35,100,101,102,105,110,101, 32, 77, 95, 80, 73, 32, 51, 46, 49, 52,
+ 49, 53, 57, 50, 54, 53, 51, 53, 56, 57, 55, 57, 51, 50, 51, 56, 52, 54, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 32, 83, 72, 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,
+118,111,105,100, 32,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 52, 32, 97,116,116,118, 99,111,108,
+ 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 41, 10,123, 10, 9,118, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,
+ 97,116,116,118, 99,111,108, 46,120, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99,111,108, 46,121, 47, 50, 53, 53, 46, 48,
+ 44, 32, 97,116,116,118, 99,111,108, 46,122, 47, 50, 53, 53, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100,
+ 32,117,118, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101,
+ 99, 51, 32,117,118, 41, 10,123, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,
+118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,103,101,
+111,109, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,109, 97,116, 52, 32,118,105,101,119,105,
+110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32,118,101, 99, 50, 32, 97,116,116,117,118, 44,
+ 32,118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 44, 32,
+111,117,116, 32,118,101, 99, 51, 32,108,111, 99, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,
+117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 44, 32,111,117,116, 32,118,
+101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 44, 32,111,117,116, 32,102,
+108,111, 97,116, 32,102,114,111,110,116, 98, 97, 99,107, 41, 10,123, 10, 9,108,111, 99, 97,108, 32, 61, 32, 99,111, 59, 10, 9,
+118,105,101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,111, 99, 97,108, 41, 59, 10, 9,103,108,111, 98, 97,108,
+ 32, 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40,108,111, 99, 97,108, 44, 32, 49, 46, 48, 41, 41,
+ 46,120,121,122, 59, 10, 9,111,114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,111, 59, 10, 9,117,118, 95, 97,116,116,114,105,
+ 98,117,116,101, 40, 97,116,116,117,118, 44, 32,117,118, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109,
+ 97,108,105,122,101, 40,110,111,114, 41, 59, 9, 47, 42, 32, 98,108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,
+114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,118, 99,111,108, 95, 97,116,116,114,105, 98,117,
+116,101, 40, 97,116,116,118, 99,111,108, 44, 32,118, 99,111,108, 41, 59, 10, 9,102,114,111,110,116, 98, 97, 99,107, 32, 61, 32,
+ 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,109,
+ 97,116, 52, 32,109, 97,116, 44, 32,118,101, 99, 51, 32,109,105,110,118,101, 99, 44, 32,118,101, 99, 51, 32,109, 97,120,118,101,
+ 99, 44, 32,102,108,111, 97,116, 32,100,111,109,105,110, 44, 32,102,108,111, 97,116, 32,100,111,109, 97,120, 44, 32,111,117,116,
+ 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 40,109, 97,116, 32, 42,
+ 32,118,101, 99, 52, 40,118,101, 99, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,105,102, 40,100,111,109,105,110, 32,
+ 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109, 97,120, 40,111,117,116,118,101, 99, 44, 32,109,
+105,110,118,101, 99, 41, 59, 10, 9,105,102, 40,100,111,109, 97,120, 32, 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,
+101, 99, 32, 61, 32,109,105,110, 40,111,117,116,118,101, 99, 44, 32,109, 97,120,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,
+100, 32, 99, 97,109,101,114, 97, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,105,
+101,119, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,101,112,116,104, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32,111,117,116,100,105,115,116, 41, 10,123, 10, 9,111,117,116,100,101,112,116,104, 32, 61, 32, 97, 98,115, 40, 99,111, 46,
+122, 41, 59, 10, 9,111,117,116,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40, 99,111, 41, 59, 10, 9,111,117,116,118,
+105,101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,
+104, 95, 97,100,100, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,
+116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49,
+ 32, 43, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,115,117, 98,116,114, 97, 99,116, 40,102,
+108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116,
+ 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 45, 32,118, 97,108, 50,
+ 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,117,108,116,105,112,108,121, 40,102,108,111, 97,116, 32,118, 97,
108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108,
- 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 50, 32, 61, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61,
- 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 47, 32,118, 97,
-108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44,
- 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,115,
-105,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 99,111,115,105,110,101, 40,102,108,111,
- 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,
-118, 97,108, 32, 61, 32, 99,111,115, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,116, 97,110,
-103,101,110,116, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108,
- 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,
-109, 97,116,104, 95, 97,115,105,110, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,
-117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32,
- 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 97,115,105,110, 40,118, 97,108, 41, 59, 10, 9,
-101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,
-104, 95, 97, 99,111,115, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,
- 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32,
- 45, 49, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 97, 99,111,115, 40,118, 97,108, 41, 59, 10, 9,101,108,115,
-101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,
-116, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41,
- 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 97,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,
-109, 97,116,104, 95,112,111,119, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44,
- 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 49, 32, 62,
- 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,112,111,119, 40,118, 97,108, 49, 44, 32,118, 97,108, 50,
- 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100,
- 32,109, 97,116,104, 95,108,111,103, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50,
- 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 62,
- 32, 48, 46, 48, 32, 32, 38, 38, 32,118, 97,108, 50, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 61, 32,108,
-111,103, 50, 40,118, 97,108, 49, 41, 32, 47, 32,108,111,103, 50, 40,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,
-111,117,116,118, 97,108, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109, 97,120, 40,102,108,
-111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,
-111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40,118, 97,108, 49, 44, 32,118, 97,
-108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,105,110, 40,102,108,111, 97,116, 32,118, 97,108, 49,
- 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,
-123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109,105,110, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,
-118,111,105,100, 32,109, 97,116,104, 95,114,111,117,110,100, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,
-108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 61, 32,102,108,111,111,114, 40,118, 97,
-108, 32, 43, 32, 48, 46, 53, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,101,115,115, 95,116,104, 97,110,
+ 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 42, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,
+105,100, 32,109, 97,116,104, 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116,
+ 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,
+118, 97,108, 50, 32, 61, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,
+115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 47, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,
+105,100, 32,109, 97,116,104, 95,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,115,105,110, 40,118, 97,108, 41, 59, 10,
+125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 99,111,115,105,110,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,
+117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,115,
+ 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,116, 97,110,103,101,110,116, 40,102,108,111, 97,
+116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,
+ 97,108, 32, 61, 32,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,115,105,110,
+ 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10,
+ 9,105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10,
+ 9, 9,111,117,116,118, 97,108, 32, 61, 32, 97,115,105,110, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,
+116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97, 99,111,115, 40,102,108,
+111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102,
+ 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,
+117,116,118, 97,108, 32, 61, 32, 97, 99,111,115, 40,118, 97,108, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,
+108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,116, 97,110, 40,102,108,111, 97,116,
+ 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,
+108, 32, 61, 32, 97,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,112,111,119, 40,
+102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 49, 32, 62, 61, 32, 48, 46, 48, 41, 10, 9, 9,
+111,117,116,118, 97,108, 32, 61, 32,112,111,119, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10,
+ 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,111,103,
40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111,
- 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 60, 32,118, 97,108, 50, 41, 10, 9, 9,
-111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48,
- 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,103,114,101, 97,116,101,114, 95,116,104, 97,110, 40,102,108,
-111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,
-111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,
-118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59,
- 10,125, 10, 10,118,111,105,100, 32,115,113,117,101,101,122,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,102,108,111, 97,
-116, 32,119,105,100,116,104, 44, 32,102,108,111, 97,116, 32, 99,101,110,116,101,114, 44, 32,111,117,116, 32,102,108,111, 97,116,
- 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 47, 40, 49, 46, 48, 32, 43, 32,
-112,111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 51, 44, 32, 45, 40, 40,118, 97,108, 45, 99,101,110,116,101,114, 41, 42,119,
-105,100,116,104, 41, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,100,100, 40,118,101,
- 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44,
- 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,
- 49, 32, 43, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93,
- 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91,
- 50, 93, 41, 41, 47, 51, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,115,117, 98, 40,118,
-101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99,
- 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,
-118, 49, 32, 45, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48,
- 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99,
- 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,118,101,114,
- 97,103,101, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,
-117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,
-101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,
-117,116,118,101, 99, 41, 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,118,
-101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,100,111,116, 40,118,101, 99, 51, 32,118,
- 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116,
- 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51, 40,
- 48, 44, 32, 48, 44, 32, 48, 41, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,100,111,116, 40,118, 49, 44, 32,118, 50, 41, 59,
- 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 99,114,111,115,115, 40,118,101, 99, 51, 32,118, 49, 44,
- 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,
-108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 99,114,111,115,115, 40,118,
- 49, 44, 32,118, 50, 41, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,110,111,114,109, 97,108,105,122,101, 40,118,101, 99,
- 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,
-111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,118, 41, 59, 10, 9,
-111,117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,
-101, 99, 95,109, 97,116,104, 95,110,101,103, 97,116,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
-111,117,116,118, 41, 10,123, 10, 9,111,117,116,118, 32, 61, 32, 45,118, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,114,109,
- 97,108, 40,118,101, 99, 51, 32,100,105,114, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
-111,117,116,110,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,111,116, 41, 10,123, 10, 9,111,117,116,
-110,111,114, 32, 61, 32,100,105,114, 59, 10, 9,111,117,116,100,111,116, 32, 61, 32, 45,100,111,116, 40,100,105,114, 44, 32,110,
-111,114, 41, 59, 10,125, 10, 10,118,111,105,100, 32, 99,117,114,118,101,115, 95,118,101, 99, 40,102,108,111, 97,116, 32,102, 97,
- 99, 44, 32,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44,
- 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 46,120, 32, 61, 32,
-116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,120, 32, 43, 32, 49, 46, 48,
- 41, 42, 48, 46, 53, 41, 46,120, 59, 10, 9,111,117,116,118,101, 99, 46,121, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40,
- 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,121, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,121, 59, 10,
- 9,111,117,116,118,101, 99, 46,122, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,
- 40,118,101, 99, 46,122, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,122, 59, 10, 10, 9,105,102, 32, 40,102, 97, 99, 32,
- 33, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32, 40,111,117,116,118,101, 99, 42,102, 97, 99, 41, 32,
- 43, 32, 40,118,101, 99, 42, 40, 49, 46, 48, 45,102, 97, 99, 41, 41, 59, 10, 10,125, 10, 10,118,111,105,100, 32, 99,117,114,118,
-101,115, 95,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,115, 97,109,112,
-108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41,
- 10,123, 10, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,
-112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,114, 41, 46, 97, 41,
- 46,114, 59, 10, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109,
- 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,103, 41, 46, 97,
- 41, 46,103, 59, 10, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,
-109, 97,112, 44, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46, 98, 41, 46,
- 97, 41, 46, 98, 59, 10, 10, 9,105,102, 32, 40,102, 97, 99, 32, 33, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108,
- 32, 61, 32, 40,111,117,116, 99,111,108, 42,102, 97, 99, 41, 32, 43, 32, 40, 99,111,108, 42, 40, 49, 46, 48, 45,102, 97, 99, 41,
- 41, 59, 10, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,115,
-101,116, 95,118, 97,108,117,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,
-116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,
-101,116, 95,114,103, 98, 40,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, 99,111,108,
- 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,
-103, 98, 97, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123,
- 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,
-101, 95,122,101,114,111, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,
- 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 95,111,110,101, 40,
-111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46,
- 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 95,122,101,114,111, 40,111,117,116, 32,118,101, 99, 51,
- 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10,
-125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, 95,122,101,114,111, 40,111,117,116, 32,118,101, 99, 52, 32,111,
-117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10,125, 10,
- 10,118,111,105,100, 32,109,105,120, 95, 98,108,101,110,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32,
- 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108,
- 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59,
- 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59,
- 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120,
- 95, 97,100,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32,
- 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32,
- 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,
-109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,
-116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,109,117,108,
-116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108,
- 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,
-109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120,
- 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 42, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,
-108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115, 99,114,101,101,110,
- 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50,
- 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,
-112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32,
- 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 32,
- 45, 32, 40,118,101, 99, 52, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99, 42, 40,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45,
- 32, 99,111,108, 50, 41, 41, 42, 40,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 49, 41, 59, 10, 9,111,117,116,
- 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,111,118,101,114,
-108, 97,121, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,
-111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,
-108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109,
- 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10,
- 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 42,
- 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9,101,108,115,101, 10, 9,
- 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97,
- 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,
-114, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,
-108, 46,103, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9,101,
-108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50,
- 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,103, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,
-116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,
-111,117,116, 99,111,108, 46, 98, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46,
- 98, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,
-109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46, 98, 41, 41, 42, 40, 49, 46, 48,
- 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115,117, 98, 40,102,108,
-111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,
-117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102,
- 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108,
- 49, 44, 32, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32,
- 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,118, 40,102,108,111, 97,116, 32,
-102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,
-101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32,
- 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102,
- 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,114,
- 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,
-114, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,114, 47, 99,111,108, 50, 46,114, 59, 10, 9,105,102, 40, 99,111,108,
- 50, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,
-111,108, 46,103, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,103, 47, 99,111,108, 50, 46,103, 59, 10, 9,105,102, 40,
- 99,111,108, 50, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,
-117,116, 99,111,108, 46, 98, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46, 98, 47, 99,111,108, 50, 46, 98, 59, 10,125,
- 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,102,102, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32,
- 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108,
- 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59,
- 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 97, 98,115, 40, 99,111,108, 49, 32, 45, 32,
- 99,111,108, 50, 41, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59,
- 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99,
- 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,
-111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48,
- 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109,105,110, 40, 99,111,108, 49, 46,114,103, 98, 44, 32, 99,
-111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,103,104,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,
-101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,
-116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49,
- 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109, 97,120, 40, 99,111,108, 49, 46,114,103, 98, 44,
- 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49,
- 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,111,100,103,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44,
- 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,
-111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44,
- 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,
-111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48,
- 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10,
- 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,
-112, 32, 61, 32,111,117,116, 99,111,108, 46,114, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,
-111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61,
- 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10,
- 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10,
- 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49,
- 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46,103, 47,116,109,
-112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,
-108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,
-116, 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49,
- 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48,
- 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,
-116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,
-116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98,
- 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,117,114,110, 40,102,108,111, 97,
+ 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32, 48, 46, 48, 32, 32, 38, 38, 32,
+118, 97,108, 50, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 61, 32,108,111,103, 50, 40,118, 97,108, 49, 41,
+ 32, 47, 32,108,111,103, 50, 40,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 61, 32, 48,
+ 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109, 97,120, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44,
+ 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123,
+ 10, 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,
+111,105,100, 32,109, 97,116,104, 95,109,105,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118,
+ 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108,
+ 32, 61, 32,109,105,110, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104,
+ 95,114,111,117,110,100, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,
+ 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 61, 32,102,108,111,111,114, 40,118, 97,108, 32, 43, 32, 48, 46, 53, 41, 59,
+ 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,101,115,115, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,
+108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108,
+ 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 60, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,
+ 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,
+105,100, 32,109, 97,116,104, 95,103,114,101, 97,116,101,114, 95,116,104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44,
+ 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123,
+ 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32,118, 97,108, 50, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48,
+ 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,
+115,113,117,101,101,122,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,102,108,111, 97,116, 32,119,105,100,116,104, 44, 32,
+102,108,111, 97,116, 32, 99,101,110,116,101,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,
+123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 47, 40, 49, 46, 48, 32, 43, 32,112,111,119, 40, 50, 46, 55, 49, 56,
+ 50, 56, 49, 56, 51, 44, 32, 45, 40, 40,118, 97,108, 45, 99,101,110,116,101,114, 41, 42,119,105,100,116,104, 41, 41, 41, 59, 10,
+125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,100,100, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101,
+ 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,
+111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,
+117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59,
+ 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,115,117, 98, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,
+101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111,
+ 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 45, 32,118, 50, 59, 10,
+ 9,111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,
+111,117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48,
+ 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,118,101,114, 97,103,101, 40,118,101, 99, 51, 32,
+118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,
+116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43,
+ 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10, 9,
+111,117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,
+111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,100,111,116, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118,
+ 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,
+116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51, 40, 48, 44, 32, 48, 44, 32, 48, 41, 59,
+ 10, 9,111,117,116,118, 97,108, 32, 61, 32,100,111,116, 40,118, 49, 44, 32,118, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,
+118,101, 99, 95,109, 97,116,104, 95, 99,114,111,115,115, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44,
+ 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,
+ 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 99,114,111,115,115, 40,118, 49, 44, 32,118, 50, 41, 59, 10, 9,
+111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100,
+ 32,118,101, 99, 95,109, 97,116,104, 95,110,111,114,109, 97,108,105,122,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,
+118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123,
+ 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,118, 41, 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,
+110,111,114,109, 97,108,105,122,101, 40,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,110,
+101,103, 97,116,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 41, 10,123, 10, 9,
+111,117,116,118, 32, 61, 32, 45,118, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,100,
+105,114, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114, 44, 32,111,
+117,116, 32,102,108,111, 97,116, 32,111,117,116,100,111,116, 41, 10,123, 10, 9,111,117,116,110,111,114, 32, 61, 32,100,105,114,
+ 59, 10, 9,111,117,116,100,111,116, 32, 61, 32, 45,100,111,116, 40,100,105,114, 44, 32,110,111,114, 41, 59, 10,125, 10, 10,118,
+111,105,100, 32, 99,117,114,118,101,115, 95,118,101, 99, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 51, 32,118,
+101, 99, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 51,
+ 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 46,120, 32, 61, 32,116,101,120,116,117,114,101, 49, 68,
+ 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,120, 59,
+ 10, 9,111,117,116,118,101, 99, 46,121, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44,
+ 32, 40,118,101, 99, 46,121, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,121, 59, 10, 9,111,117,116,118,101, 99, 46,122,
+ 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 40,118,101, 99, 46,122, 32, 43, 32,
+ 49, 46, 48, 41, 42, 48, 46, 53, 41, 46,122, 59, 10, 10, 9,105,102, 32, 40,102, 97, 99, 32, 33, 61, 32, 49, 46, 48, 41, 10, 9,
+ 9,111,117,116,118,101, 99, 32, 61, 32, 40,111,117,116,118,101, 99, 42,102, 97, 99, 41, 32, 43, 32, 40,118,101, 99, 42, 40, 49,
+ 46, 48, 45,102, 97, 99, 41, 41, 59, 10, 10,125, 10, 10,118,111,105,100, 32, 99,117,114,118,101,115, 95,114,103, 98, 40,102,108,
+111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,117,114,
+118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,
+108, 46,114, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117,114,
+101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,114, 41, 46, 97, 41, 46,114, 59, 10, 9,111,117,116, 99,
+111,108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,117,
+114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46,103, 41, 46, 97, 41, 46,103, 59, 10, 9,111,117,116,
+ 99,111,108, 46, 98, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,116,101,120,116,
+117,114,101, 49, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32, 99,111,108, 46, 98, 41, 46, 97, 41, 46, 98, 59, 10, 10, 9,105,
+102, 32, 40,102, 97, 99, 32, 33, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32, 40,111,117,116, 99,111,
+108, 42,102, 97, 99, 41, 32, 43, 32, 40, 99,111,108, 42, 40, 49, 46, 48, 45,102, 97, 99, 41, 41, 59, 10, 10, 9,111,117,116, 99,
+111,108, 46, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 40,
+102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,
+111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 40,118,101,
+ 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,
+111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, 40,118,101, 99, 52, 32,
+ 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32,
+ 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 95,122,101,114,111, 40,111,117,
+116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59,
+ 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 95,111,110,101, 40,111,117,116, 32,102,108,111, 97,116,
+ 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,
+100, 32,115,101,116, 95,114,103, 98, 95,122,101,114,111, 40,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118, 97,108, 41, 10,
+123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,
+101,116, 95,114,103, 98, 97, 95,122,101,114,111, 40,111,117,116, 32,118,101, 99, 52, 32,111,117,116,118, 97,108, 41, 10,123, 10,
+ 9,111,117,116,118, 97,108, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120,
+ 95, 98,108,101,110,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99,
+ 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32,
+ 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32,
+ 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46,
+ 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 97,100,100, 40,102,108,111, 97,
116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116,
32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99,
- 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,116,109,112, 44, 32,102, 97, 99,109, 32, 61, 32,
- 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,116,109,
-112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9,105,102, 40,116,109,112, 32, 60,
- 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,
-102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41,
- 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10,
- 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61,
- 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 10, 9,
-116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9,105,102, 40,116,109,112,
- 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101,
- 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,
-103, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 48, 46, 48,
- 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103,
- 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,109,112, 59, 10,
- 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9,105,102, 40,116,
-109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,
-115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,
-108, 46, 98, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 48,
- 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108,
- 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,109,112,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,104,117,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99,
- 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,
-111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48,
- 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,
-116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 44, 32,116,
-109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,105,
-102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,
-111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59, 10,
- 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,
-111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,
-116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,
-115, 97,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,
+ 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44,
+ 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32,
+ 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,109,117,108,116, 40,102,108,111, 97,116, 32,102,
+ 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101,
+ 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48,
+ 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,
+108, 49, 32, 42, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108,
+ 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,102, 97,
+ 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99,
+ 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46,
+ 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,
+ 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 40,118,101, 99, 52, 40,102,
+ 97, 99,109, 41, 32, 43, 32,102, 97, 99, 42, 40,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 50, 41, 41, 42, 40,
+118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 49, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,
+111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,111,118,101,114,108, 97,121, 40,102,108,111, 97,116,
+ 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,
+118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44,
+ 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,
+102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,
+108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32,
+ 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114,
+ 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32,
+ 99,111,108, 50, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40,
+111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 42, 61, 32,102, 97,
+ 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,
+ 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49,
+ 46, 48, 32, 45, 32, 99,111,108, 50, 46,103, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10,
+ 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32,
+ 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9,101,108,115,101, 10,
+ 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102,
+ 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108,
+ 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115,117, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,
+118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,
+117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32,
+ 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 45,
+ 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59,
+ 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,118, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52,
+ 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,
+108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41,
+ 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116,
+ 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,
+111,117,116, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99, 42,111,
+117,116, 99,111,108, 46,114, 47, 99,111,108, 50, 46,114, 59, 10, 9,105,102, 40, 99,111,108, 50, 46,103, 32, 33, 61, 32, 48, 46,
+ 48, 41, 32,111,117,116, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97,
+ 99, 42,111,117,116, 99,111,108, 46,103, 47, 99,111,108, 50, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 33, 61,
+ 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, 43,
+ 32,102, 97, 99, 42,111,117,116, 99,111,108, 46, 98, 47, 99,111,108, 50, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,
+120, 95,100,105,102,102, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99,
+ 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32,
+ 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32,
+ 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 97, 98,115, 40, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 41, 44, 32,102, 97,
+ 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,
+109,105,120, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,
+101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97,
+ 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,
+108, 46,114,103, 98, 32, 61, 32,109,105,110, 40, 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102,
+ 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100,
+ 32,109,105,120, 95,108,105,103,104,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44,
+ 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,
+102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116,
+ 99,111,108, 46,114,103, 98, 32, 61, 32,109, 97,120, 40, 99,111,108, 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98,
+ 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,
+105,100, 32,109,105,120, 95,100,111,100,103,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108,
+ 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123,
+ 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,
+117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 33, 61, 32, 48,
+ 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,
+108, 50, 46,114, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108,
+ 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,
+108, 46,114, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46,
+ 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,
+ 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,
+109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9, 9,105,102, 40,116,109,112, 32,
+ 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,
+101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46,103, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41,
+ 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,
+116, 99,111,108, 46,103, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 33, 61,
+ 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42,
+ 99,111,108, 50, 46, 98, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,
+111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116,
+ 99,111,108, 46, 98, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,
+ 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10, 9,
+125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,117,114,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101,
+ 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,
+ 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46,
+ 48, 41, 59, 10, 9,102,108,111, 97,116, 32,116,109,112, 44, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,
+ 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32,
+ 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,
+111,117,116, 99,111,108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,
+ 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 47,116,109,112, 41, 41, 32, 60, 32,
+ 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,
+116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,
+115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,
+109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10,
+ 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32,
+ 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 47,116,109,112, 41, 41, 32,
+ 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,
+102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9,
+101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102,
+ 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48,
+ 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,
+112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 47,116,109,112, 41,
+ 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101,
+ 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59,
+ 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10,125, 10, 10,118,111,105,100,
+ 32,109,105,120, 95,104,117,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,
+101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97,
+ 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116,
+ 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,
+108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,
+116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32,
+ 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,
+115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,118, 95,116,111, 95,
+114,103, 98, 40,104,115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,
+111,117,116, 99,111,108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32,
+ 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115, 97,116, 40,102,108,111, 97,116,
+ 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,
+118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44,
+ 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,
+102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118,
+ 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41,
+ 59, 10, 10, 9,105,102, 40,104,115,118, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,
+104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9, 9,104,115,118, 46,121, 32, 61, 32,102, 97, 99,109,
+ 42,104,115,118, 46,121, 32, 43, 32,102, 97, 99, 42,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103,
+ 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,118,
+ 97,108, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,
+108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108,
+ 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32,
+ 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,
+114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 49, 44, 32,104,115,118, 41, 59, 10, 9,114,103, 98, 95,116,111, 95,104,
+115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,104,115,118, 46,122, 32, 61, 32,102, 97, 99,109, 42,104,
+115,118, 46,122, 32, 43, 32,102, 97, 99, 42,104,115,118, 50, 46,122, 59, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,
+115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 99,111,108,111,114, 40,102,
+108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,
+111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,
+102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46,
+ 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52,
+ 32,104,115,118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108,
+ 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10,
+ 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118,
+ 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,118, 46,121, 32, 61, 32,104,115,118, 50, 46,121, 59, 10, 9,
+ 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,
+108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116,
+ 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115,
+111,102,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,
111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,
108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109,
- 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10,
- 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116,
- 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10,
- 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9, 9,104,115,118,
- 46,121, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,121, 32, 43, 32,102, 97, 99, 42,104,115,118, 50, 46,121, 59, 10, 9, 9,
-104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 9,125, 10,125, 10, 10,118,
-111,105,100, 32,109,105,120, 95,118, 97,108, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49,
- 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10,
- 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,
-111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118,
- 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 49, 44, 32,104,115,118, 41, 59, 10,
- 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,104,115,118, 46,122,
- 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,122, 32, 43, 32,102, 97, 99, 42,104,115,118, 50, 46,122, 59, 10, 9,104,115,118,
- 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,
-120, 95, 99,111,108,111,114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101,
- 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99,
- 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,
-102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108,
- 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116,
-111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33,
- 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,
-118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,118, 46,121, 32, 61, 32,
-104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,116,109,112, 41, 59, 32,
- 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,109,112, 44, 32,102, 97,
- 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,
-111,105,100, 32,109,105,120, 95,115,111,102,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108,
- 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123,
- 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,
-108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,118,101, 99, 52, 32,111,110,
-101, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,118,101, 99, 52, 32,115, 99,114, 61, 32,111,110,101, 32, 45, 32, 40,
-111,110,101, 32, 45, 32, 99,111,108, 50, 41, 42, 40,111,110,101, 32, 45, 32, 99,111,108, 49, 41, 59, 10, 9,111,117,116, 99,111,
-108, 32, 61, 32,102, 97, 99,109, 42, 99,111,108, 49, 32, 43, 32,102, 97, 99, 42, 40, 40,111,110,101, 32, 45, 32, 99,111,108, 49,
- 41, 42, 99,111,108, 50, 42, 99,111,108, 49, 32, 43, 32, 99,111,108, 49, 42,115, 99,114, 41, 59, 10,125, 10, 10,118,111,105,100,
- 32,109,105,120, 95,108,105,110,101, 97,114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49,
- 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10,
- 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 10, 9,111,
-117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,114, 32, 62, 32, 48, 46, 53, 41,
- 10, 9, 9,111,117,116, 99,111,108, 46,114, 61, 32, 99,111,108, 49, 46,114, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40,
- 99,111,108, 50, 46,114, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114,
- 61, 32, 99,111,108, 49, 46,114, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,114, 41, 32, 45, 32, 49,
- 46, 48, 41, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,103, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108,
- 46,103, 61, 32, 99,111,108, 49, 46,103, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,103, 32, 45, 32,
- 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 61, 32, 99,111,108, 49, 46,103, 32,
- 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,103, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10, 10, 9,105,102,
- 40, 99,111,108, 50, 46, 98, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 61, 32, 99,111,108, 49, 46,
- 98, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46, 98, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,
-108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 61, 32, 99,111,108, 49, 46, 98, 32, 43, 32,102, 97, 99, 42, 40, 50, 46,
- 48, 42, 40, 99,111,108, 50, 46, 98, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118, 97,108,116,111,
-114,103, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,111,108,111,114,109, 97,
-112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,
-116, 97,108,112,104, 97, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,111,
-108,111,114,109, 97,112, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 97,108,112,104, 97, 32, 61, 32,111,117,116, 99,111,108,
- 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,114,103, 98,116,111, 98,119, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,
-111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 32, 32, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,
- 99,111,108,111,114, 46,114, 42, 48, 46, 51, 53, 32, 43, 32, 99,111,108,111,114, 46,103, 42, 48, 46, 52, 53, 32, 43, 32, 99,111,
-108,111,114, 46, 98, 42, 48, 46, 50, 59, 32, 47, 42, 32,107,101,101,112, 32,116,104,101,115,101, 32,102, 97, 99,116,111,114,115,
- 32,105,110, 32,115,121,110, 99, 32,119,105,116,104, 32,116,101,120,116,117,114,101, 46,104, 58, 82, 71, 66, 84, 79, 66, 87, 32,
- 42, 47, 10,125, 10, 10,118,111,105,100, 32,105,110,118,101,114,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99,
- 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,
-108, 46,120,121,122, 32, 61, 32,109,105,120, 40, 99,111,108, 46,120,121,122, 44, 32,118,101, 99, 51, 40, 49, 46, 48, 44, 32, 49,
- 46, 48, 44, 32, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 46,120,121,122, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,
-108, 46,119, 32, 61, 32, 99,111,108, 46,119, 59, 10,125, 10, 10,118,111,105,100, 32,104,117,101, 95,115, 97,116, 40,102,108,111,
- 97,116, 32,104,117,101, 44, 32,102,108,111, 97,116, 32,115, 97,116, 44, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,
-102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,
-116, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32,104,115,118, 59, 10, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,
- 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,104,115,118, 91, 48, 93, 32, 43, 61, 32, 40,104,117,101, 32, 45, 32, 48, 46,
- 53, 41, 59, 10, 9,105,102, 40,104,115,118, 91, 48, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 48, 93, 45, 61, 49, 46, 48, 59,
- 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 48, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 48, 93, 43, 61, 32, 49, 46,
- 48, 59, 10, 9,104,115,118, 91, 49, 93, 32, 42, 61, 32,115, 97,116, 59, 10, 9,105,102, 40,104,115,118, 91, 49, 93, 62, 49, 46,
- 48, 41, 32,104,115,118, 91, 49, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 49, 93, 60, 48,
- 46, 48, 41, 32,104,115,118, 91, 49, 93, 61, 32, 48, 46, 48, 59, 10, 9,104,115,118, 91, 50, 93, 32, 42, 61, 32,118, 97,108,117,
-101, 59, 10, 9,105,102, 40,104,115,118, 91, 50, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 49, 46, 48, 59, 32,
-101,108,115,101, 32,105,102, 40,104,115,118, 91, 50, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 48, 46, 48, 59,
- 10, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 10, 9,111,117,
-116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 44, 32,111,117,116, 99,111,108, 44, 32,102, 97, 99, 41, 59, 10,125, 10,
- 10,118,111,105,100, 32,115,101,112, 97,114, 97,116,101, 95,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116,
- 32,102,108,111, 97,116, 32,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,103, 44, 32,111,117,116, 32,102,108,111, 97,116,
- 32, 98, 41, 10,123, 10, 9,114, 32, 61, 32, 99,111,108, 46,114, 59, 10, 9,103, 32, 61, 32, 99,111,108, 46,103, 59, 10, 9, 98,
- 32, 61, 32, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32, 99,111,109, 98,105,110,101, 95,114,103, 98, 40,102,108,
-111, 97,116, 32,114, 44, 32,102,108,111, 97,116, 32,103, 44, 32,102,108,111, 97,116, 32, 98, 44, 32,111,117,116, 32,118,101, 99,
- 52, 32, 99,111,108, 41, 10,123, 10, 9, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114, 44, 32,103, 44, 32, 98, 44, 32, 49, 46,
- 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,111,117,116,112,117,116, 95,110,111,100,101, 40,118,101, 99, 52, 32,114,103, 98,
- 44, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,
-123, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41,
- 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 84, 69, 88, 84, 85, 82, 69, 83, 32, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,102,108,105,112, 95, 98,
-108,101,110,100, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,
-123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 46,121,120,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,
-116,117,114,101, 95, 98,108,101,110,100, 95,108,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111,
- 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 49, 46, 48, 43,118,101, 99, 46,
-120, 41, 47, 50, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,113,117,
- 97,100, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123,
- 10, 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 44, 32,
- 48, 46, 48, 41, 59, 10, 9,111,117,116,118, 97,108, 32, 42, 61, 32,111,117,116,118, 97,108, 59, 10,125, 10, 10,118,111,105,100,
- 32,116,101,120,116,117,114,101, 95,119,111,111,100, 95,115,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,
-102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116,
- 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 97, 32, 61, 32,115,113,114,116, 40,
-118,101, 99, 46,120, 42,118,101, 99, 46,120, 32, 43, 32,118,101, 99, 46,121, 42,118,101, 99, 46,121, 32, 43, 32,118,101, 99, 46,
-122, 42,118,101, 99, 46,122, 41, 42, 50, 48, 46, 48, 59, 10, 9,102,108,111, 97,116, 32,119,105, 32, 61, 32, 48, 46, 53, 32, 43,
- 32, 48, 46, 53, 42,115,105,110, 40, 97, 41, 59, 10, 10, 9,118, 97,108,117,101, 32, 61, 32,119,105, 59, 10, 9, 99,111,108,111,
-114, 32, 61, 32,118,101, 99, 52, 40,119,105, 44, 32,119,105, 44, 32,119,105, 44, 32, 49, 46, 48, 41, 59, 10, 9,110,111,114,109,
- 97,108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,
-100, 32,116,101,120,116,117,114,101, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,
-114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101,
- 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,
-108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 40,118,101, 99, 46,120,121, 32, 43, 32,118,
-101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 41, 42, 48, 46, 53, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46,
- 48, 59, 10, 10, 9,110,111,114,109, 97,108, 46,120, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46,114, 32, 45, 32, 48,
- 46, 53, 41, 59, 10, 9,110,111,114,109, 97,108, 46,121, 32, 61, 32, 50, 46, 48, 42, 40, 48, 46, 53, 32, 45, 32, 99,111,108,111,
-114, 46,103, 41, 59, 10, 9,110,111,114,109, 97,108, 46,122, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46, 98, 32, 45,
- 32, 48, 46, 53, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 77, 84, 69, 88, 32, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111,114, 99,
-111, 40,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 41, 10,123,
- 10, 9,111,114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,
-117,118, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9, 47,
- 42, 32,100,105,115, 97, 98,108,101,100, 32,102,111,114, 32,110,111,119, 44, 32,119,111,114,107,115, 32,116,111,103,101,116,104,
-101,114, 32,119,105,116,104, 32,108,101, 97,118,105,110,103, 32,111,117,116, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,
-105,110,103, 10, 9, 32, 32, 32,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101,
- 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 32, 42, 47, 10, 9,117,118, 32, 61, 32,118,101, 99,
- 51, 40, 97,116,116,117,118, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,110,111,114,
-109, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,
-108, 41, 10,123, 10, 9, 47, 42, 32, 99,111,114,114,101,115,112,111,110,100,115, 32,116,111, 32,115,104,105, 45, 62,111,114,110,
- 44, 32,119,104,105, 99,104, 32,105,115, 32,110,101,103, 97,116,101,100, 32,115,111, 32, 99, 97,110, 99,101,108,115, 10, 9, 32,
- 32, 32,111,117,116, 32, 98,108,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,110,101,103, 97,116,105,111,110, 32, 42, 47,
- 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59,
- 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 52, 32,116, 97,110,103,
-101,110,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116, 97,110,103,101,110,116, 41, 10,123, 10, 9,111,117,116,
-116, 97,110,103,101,110,116, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,116, 97,110,103,101,110,116, 46,120,121,122, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,103,108,111, 98, 97,108, 40,109, 97,116, 52, 32,118,105,101,119,
-105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108,
- 41, 10,123, 10, 9,103,108,111, 98, 97,108, 32, 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,
-111, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111, 98,106,101,
- 99,116, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,109, 97,116, 52, 32,111, 98,105,110,118,109, 97,
-116, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111, 98,106,101, 99,116, 41, 10,123, 10, 9,
-111, 98,106,101, 99,116, 32, 61, 32, 40,111, 98,105,110,118,109, 97,116, 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,
-101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 41, 46,120,121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,
-111, 95,114,101,102,108, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,
-101, 99, 51, 32,114,101,102, 41, 10,123, 10, 9,114,101,102, 32, 61, 32,118,105,101,119, 32, 45, 32, 50, 46, 48, 42,100,111,116,
- 40,118,110, 44, 32,118,105,101,119, 41, 42,118,110, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,110,111,114,
-109, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,
-108, 41, 10,123, 10, 9, 47, 42, 32, 98,108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,
-115, 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,
-108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 98,
-108,101,110,100, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,
-108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
-105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,
-102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32,
- 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,109,117,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,
-101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97,
- 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,
-109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102,
- 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,
-111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 99,114,
-101,101,110, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,
-111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,
-110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102,
- 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61,
- 32,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32, 40,118,101, 99, 51, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99,116, 42,
- 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41,
- 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,111,118,101,
-114,108, 97,121, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,
-108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
-105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,
-102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,102, 40,111,117,116,
- 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,
-114, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 41, 59, 10, 9,101,
-108,115,101, 10, 9, 9,105,110, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46,
- 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,
-111,117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10,
- 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48,
- 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,103,
- 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45,
- 32,116,101,120, 99,111,108, 46,103, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,
-105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32,111,
-117,116, 99,111,108, 46, 98, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,
- 98, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,
-109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46, 98, 41, 41, 42, 40,
- 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103,
- 98, 95,115,117, 98, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,
-102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51,
- 32,105,110, 99,111,108, 41, 10,123, 10, 9,105,110, 99,111,108, 32, 61, 32, 45,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,
-120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,
- 97,100,100, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,
-111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,
-110, 99,111,108, 41, 10,123, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,
-108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,118,
- 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116,
- 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,
-108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103,
- 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,
-114, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,
-114, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46,114, 47,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,
-116,101,120, 99,111,108, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,
-111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46,103, 47,116,101,120, 99,111,108, 46,
-103, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, 98, 32,
- 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, 98, 47,
-116,101,120, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,102,102, 40,
-118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,
-102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108,
- 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59,
- 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,
-109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116,
- 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100, 97,114,107, 40,118,101, 99, 51,
+ 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,118,101, 99, 52, 32,111,110,101, 61, 32,118,101, 99, 52, 40, 49,
+ 46, 48, 41, 59, 10, 9,118,101, 99, 52, 32,115, 99,114, 61, 32,111,110,101, 32, 45, 32, 40,111,110,101, 32, 45, 32, 99,111,108,
+ 50, 41, 42, 40,111,110,101, 32, 45, 32, 99,111,108, 49, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,
+ 99,111,108, 49, 32, 43, 32,102, 97, 99, 42, 40, 40,111,110,101, 32, 45, 32, 99,111,108, 49, 41, 42, 99,111,108, 50, 42, 99,111,
+108, 49, 32, 43, 32, 99,111,108, 49, 42,115, 99,114, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,110,101,
+ 97,114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,
+108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108,
+ 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,
+111,108, 49, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,114, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108,
+ 46,114, 61, 32, 99,111,108, 49, 46,114, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,114, 32, 45, 32,
+ 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 61, 32, 99,111,108, 49, 46,114, 32,
+ 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,114, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10, 10, 9,105,102,
+ 40, 99,111,108, 50, 46,103, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 61, 32, 99,111,108, 49, 46,
+103, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,103, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,
+108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 61, 32, 99,111,108, 49, 46,103, 32, 43, 32,102, 97, 99, 42, 40, 50, 46,
+ 48, 42, 40, 99,111,108, 50, 46,103, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 62,
+ 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 61, 32, 99,111,108, 49, 46, 98, 32, 43, 32,102, 97, 99, 42, 40,
+ 50, 46, 48, 42, 40, 99,111,108, 50, 46, 98, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,
+ 99,111,108, 46, 98, 61, 32, 99,111,108, 49, 46, 98, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46, 98,
+ 41, 32, 45, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118, 97,108,116,111,114,103, 98, 40,102,108,111, 97,116,
+ 32,102, 97, 99, 44, 32,115, 97,109,112,108,101,114, 49, 68, 32, 99,111,108,111,114,109, 97,112, 44, 32,111,117,116, 32,118,101,
+ 99, 52, 32,111,117,116, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116, 97,108,112,104, 97, 41, 10,123,
+ 10, 9,111,117,116, 99,111,108, 32, 61, 32,116,101,120,116,117,114,101, 49, 68, 40, 99,111,108,111,114,109, 97,112, 44, 32,102,
+ 97, 99, 41, 59, 10, 9,111,117,116, 97,108,112,104, 97, 32, 61, 32,111,117,116, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,
+105,100, 32,114,103, 98,116,111, 98,119, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116,
+ 32,111,117,116,118, 97,108, 41, 32, 32, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48,
+ 46, 51, 53, 32, 43, 32, 99,111,108,111,114, 46,103, 42, 48, 46, 52, 53, 32, 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 50,
+ 59, 32, 47, 42, 32,107,101,101,112, 32,116,104,101,115,101, 32,102, 97, 99,116,111,114,115, 32,105,110, 32,115,121,110, 99, 32,
+119,105,116,104, 32,116,101,120,116,117,114,101, 46,104, 58, 82, 71, 66, 84, 79, 66, 87, 32, 42, 47, 10,125, 10, 10,118,111,105,
+100, 32,105,110,118,101,114,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,
+116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,120,121,122, 32, 61, 32,109,
+105,120, 40, 99,111,108, 46,120,121,122, 44, 32,118,101, 99, 51, 40, 49, 46, 48, 44, 32, 49, 46, 48, 44, 32, 49, 46, 48, 41, 32,
+ 45, 32, 99,111,108, 46,120,121,122, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46,119, 32, 61, 32, 99,111,108,
+ 46,119, 59, 10,125, 10, 10,118,111,105,100, 32,104,117,101, 95,115, 97,116, 40,102,108,111, 97,116, 32,104,117,101, 44, 32,102,
+108,111, 97,116, 32,115, 97,116, 44, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,102,108,111, 97,116, 32,102, 97, 99,
+ 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,
+118,101, 99, 52, 32,104,115,118, 59, 10, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 44, 32,104,115,118, 41,
+ 59, 10, 10, 9,104,115,118, 91, 48, 93, 32, 43, 61, 32, 40,104,117,101, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,105,102, 40,104,
+115,118, 91, 48, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 48, 93, 45, 61, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,
+104,115,118, 91, 48, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 48, 93, 43, 61, 32, 49, 46, 48, 59, 10, 9,104,115,118, 91, 49,
+ 93, 32, 42, 61, 32,115, 97,116, 59, 10, 9,105,102, 40,104,115,118, 91, 49, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 49, 93,
+ 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 49, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 49,
+ 93, 61, 32, 48, 46, 48, 59, 10, 9,104,115,118, 91, 50, 93, 32, 42, 61, 32,118, 97,108,117,101, 59, 10, 9,105,102, 40,104,115,
+118, 91, 50, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,
+115,118, 91, 50, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 48, 46, 48, 59, 10, 10, 9,104,115,118, 95,116,111,
+ 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,
+120, 40, 99,111,108, 44, 32,111,117,116, 99,111,108, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,112,
+ 97,114, 97,116,101, 95,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,114, 44,
+ 32,111,117,116, 32,102,108,111, 97,116, 32,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 98, 41, 10,123, 10, 9,114, 32,
+ 61, 32, 99,111,108, 46,114, 59, 10, 9,103, 32, 61, 32, 99,111,108, 46,103, 59, 10, 9, 98, 32, 61, 32, 99,111,108, 46, 98, 59,
+ 10,125, 10, 10,118,111,105,100, 32, 99,111,109, 98,105,110,101, 95,114,103, 98, 40,102,108,111, 97,116, 32,114, 44, 32,102,108,
+111, 97,116, 32,103, 44, 32,102,108,111, 97,116, 32, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 41, 10,123, 10,
+ 9, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114, 44, 32,103, 44, 32, 98, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,
+105,100, 32,111,117,116,112,117,116, 95,110,111,100,101, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,102,108,111, 97,116, 32, 97,
+108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114,103, 98,
+ 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10, 47, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 32, 84, 69, 88, 84, 85, 82, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 47, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,102,108,105,112, 95, 98,108,101,110,100, 40,118,101, 99, 51,
+ 32,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99,
+ 32, 61, 32,118,101, 99, 46,121,120,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,
+100, 95,108,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108,
+ 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 59, 10,125,
+ 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,113,117, 97,100, 40,118,101, 99, 51, 32,118,
+101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32,
+ 61, 32,109, 97,120, 40, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10, 9,111,117,
+116,118, 97,108, 32, 42, 61, 32,111,117,116,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,
+119,111,111,100, 95,115,105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,
+117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,
+109, 97,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32, 97, 32, 61, 32,115,113,114,116, 40,118,101, 99, 46,120, 42,118,101, 99,
+ 46,120, 32, 43, 32,118,101, 99, 46,121, 42,118,101, 99, 46,121, 32, 43, 32,118,101, 99, 46,122, 42,118,101, 99, 46,122, 41, 42,
+ 50, 48, 46, 48, 59, 10, 9,102,108,111, 97,116, 32,119,105, 32, 61, 32, 48, 46, 53, 32, 43, 32, 48, 46, 53, 42,115,105,110, 40,
+ 97, 41, 59, 10, 10, 9,118, 97,108,117,101, 32, 61, 32,119,105, 59, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40,
+119,105, 44, 32,119,105, 44, 32,119,105, 44, 32, 49, 46, 48, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51,
+ 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101,
+ 95,105,109, 97,103,101, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,
+111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44,
+ 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,
+116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 40,118,101, 99, 46,120,121, 32, 43, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32,
+ 49, 46, 48, 41, 41, 42, 48, 46, 53, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 10, 9,110,111,114,109,
+ 97,108, 46,120, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46,114, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,110,111,114,
+109, 97,108, 46,121, 32, 61, 32, 50, 46, 48, 42, 40, 48, 46, 53, 32, 45, 32, 99,111,108,111,114, 46,103, 41, 59, 10, 9,110,111,
+114,109, 97,108, 46,122, 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46, 98, 32, 45, 32, 48, 46, 53, 41, 59, 10,125, 10,
+ 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 77, 84, 69, 88, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111,114, 99,111, 40,118,101, 99, 51, 32, 97,116,
+116,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 41, 10,123, 10, 9,111,114, 99,111, 32, 61, 32,
+ 97,116,116,111,114, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,117,118, 40,118,101, 99, 50, 32, 97,
+116,116,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9, 47, 42, 32,100,105,115, 97, 98,108,101,
+100, 32,102,111,114, 32,110,111,119, 44, 32,119,111,114,107,115, 32,116,111,103,101,116,104,101,114, 32,119,105,116,104, 32,108,
+101, 97,118,105,110,103, 32,111,117,116, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 10, 9, 32, 32, 32,117,
+118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49,
+ 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 32, 42, 47, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 44, 32,
+ 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,
+114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32,
+ 99,111,114,114,101,115,112,111,110,100,115, 32,116,111, 32,115,104,105, 45, 62,111,114,110, 44, 32,119,104,105, 99,104, 32,105,
+115, 32,110,101,103, 97,116,101,100, 32,115,111, 32, 99, 97,110, 99,101,108,115, 10, 9, 32, 32, 32,111,117,116, 32, 98,108,101,
+110,100,101,114, 32,110,111,114,109, 97,108, 32,110,101,103, 97,116,105,111,110, 32, 42, 47, 10, 9,111,117,116,110,111,114,109,
+ 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,
+116,101,120, 99,111, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 52, 32,116, 97,110,103,101,110,116, 44, 32,111,117,116, 32,
+118,101, 99, 51, 32,111,117,116,116, 97,110,103,101,110,116, 41, 10,123, 10, 9,111,117,116,116, 97,110,103,101,110,116, 32, 61,
+ 32,110,111,114,109, 97,108,105,122,101, 40,116, 97,110,103,101,110,116, 46,120,121,122, 41, 59, 10,125, 10, 10,118,111,105,100,
+ 32,116,101,120, 99,111, 95,103,108,111, 98, 97,108, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,118,
+101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 41, 10,123, 10, 9,103,108,111, 98,
+ 97,108, 32, 61, 32, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 46,
+120,121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111, 98,106,101, 99,116, 40,109, 97,116, 52, 32,118,
+105,101,119,105,110,118,109, 97,116, 44, 32,109, 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,
+111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111, 98,106,101, 99,116, 41, 10,123, 10, 9,111, 98,106,101, 99,116, 32, 61, 32,
+ 40,111, 98,105,110,118,109, 97,116, 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49,
+ 46, 48, 41, 41, 41, 46,120,121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,114,101,102,108, 40,118,101,
+ 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,114,101,102, 41, 10,
+123, 10, 9,114,101,102, 32, 61, 32,118,105,101,119, 32, 45, 32, 50, 46, 48, 42,100,111,116, 40,118,110, 44, 32,118,105,101,119,
+ 41, 42,118,110, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,
+114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32,
+ 98,108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100,
+ 32, 42, 47, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109,
+ 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 98,108,101,110,100, 40,118,101, 99, 51,
32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116,
44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10,
- 9,102,108,111, 97,116, 32,102, 97, 99,109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103,
- 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116,
- 42,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,
-110, 99,111,108, 46,114, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116,
- 99,111,108, 46,114, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102,
- 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,
-101,108,115,101, 32,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,
-102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,
- 98, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61,
- 32,111,117,116, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,108,105,103,104,
-116, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,
-116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,
-111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42,
- 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32,
- 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,
-108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114,
- 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,
-103, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61,
- 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9,
- 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,
-117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,
-111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103,
- 98, 95,104,117,101, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,
-102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51,
- 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,104,117,101, 40,102,
- 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99,
- 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98,
- 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 97,116,
- 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116,
- 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,
-108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,115, 97,116, 40,102, 97, 99,116, 42,102,
- 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120,
- 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,
-108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,118, 97,108, 40,118,101, 99, 51,
+ 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97,
+ 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,
+120, 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120,
+ 95,114,103, 98, 95,109,117,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,
+108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,
+101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116,
+ 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110,
+ 99,111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,
+108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 99,114,101,101,110, 40,118,101, 99, 51, 32,
+111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44,
+ 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,
+102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,
+109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 49, 46, 48,
+ 41, 32, 45, 32, 40,118,101, 99, 51, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99,116, 42, 40,118,101, 99, 51, 40, 49, 46, 48,
+ 41, 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,111,117,116, 99,111,108,
+ 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,111,118,101,114,108, 97,121, 40,118,101, 99, 51,
32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116,
44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10,
- 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,118, 97,108, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,
-118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32,
- 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 99,111,108,111,114, 40,118,101, 99, 51, 32,111,117,
+ 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97,
+ 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48,
+ 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 42, 40,102, 97, 99,109, 32, 43,
+ 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,
+111,108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49,
+ 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41,
+ 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46,103,
+ 32, 61, 32,111,117,116, 99,111,108, 46,103, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120,
+ 99,111,108, 46,103, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32,
+ 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46,103,
+ 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108,
+ 46, 98, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 42, 40,
+102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 41, 59, 10, 9,101,108,115,101,
+ 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102,
+ 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116,
+ 99,111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,117, 98, 40,118,101, 99,
+ 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,
+116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123,
+ 10, 9,105,110, 99,111,108, 32, 61, 32, 45,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,
+116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 97,100,100, 40,118,101, 99, 51, 32,
+111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44,
+ 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,
+105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,
+108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,118, 40,118,101, 99, 51, 32,111,117,116,
+ 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,
+111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111,
+ 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61,
+ 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41,
+ 32,105,110, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99,116, 42,
+111,117,116, 99,111,108, 46,114, 47,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,103, 32,
+ 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32,
+ 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46,103, 47,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40,116,101,
+120, 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,
+116, 99,111,108, 46, 98, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, 98, 47,116,101,120, 99,111,108, 46, 98, 59,
+ 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,102,102, 40,118,101, 99, 51, 32,111,117,116, 99,
+111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111,
+ 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,
+116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32,
+ 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32,
+ 43, 32,102, 97, 99,116, 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,
+118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100, 97,114,107, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,
+118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102,
+ 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97,
+ 99,109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61,
+ 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114,
+ 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32,
+ 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,
+111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,
+116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,
+108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,
+111,108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46,
+ 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98,
+ 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,108,105,103,104,116, 40,118,101, 99, 51, 32,111,117,
116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,
-108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101,
- 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95, 99,111,108,111,114, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,
-101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49,
- 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59,
- 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,105,110,111,117,116, 32,102,
-108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116,
- 32,102, 97, 99,109, 41, 10,123, 10, 9,102, 97, 99,116, 32, 42, 61, 32, 97, 98,115, 40,102, 97, 99,103, 41, 59, 10, 9,102, 97,
- 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,102, 40,102, 97, 99,103, 32, 60, 32, 48, 46, 48, 41, 32,
-123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32,102, 97, 99,116, 59, 10, 9, 9,102, 97, 99,116, 32, 61, 32,102,
- 97, 99,109, 59, 10, 9, 9,102, 97, 99,109, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,116,
-101,120, 95,118, 97,108,117,101, 95, 98,108,101,110,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111,
- 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,
-103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,
-109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,
-102, 97, 99,109, 41, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,102,
- 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,109,
-117,108, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,
-108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116,
- 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,
-117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,
-109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43,
- 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,
-101,120, 95,118, 97,108,117,101, 95,115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,
-111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97,
- 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97,
- 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44,
- 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110,
- 99,111,108, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,
-116,101,120, 99,111,108, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100,
- 32,109,116,101,120, 95,118, 97,108,117,101, 95,115,117, 98, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,
-111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97,
- 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97,
- 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44,
- 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,116, 32, 61, 32, 45,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61,
- 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,
-116,101,120, 95,118, 97,108,117,101, 95, 97,100,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,
-116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103,
- 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109,
- 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102,
- 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,116, 32, 61, 32,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97,
- 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120,
- 95,118, 97,108,117,101, 95,100,105,118, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,
-101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,
-117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,
-109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109,
- 41, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, 9, 9,105,110, 99,111,108, 32, 61,
- 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 47,116,101,120, 99,111,
-108, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,
-109,116,101,120, 95,118, 97,108,117,101, 95,100,105,102,102, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,
-111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97,
- 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97,
- 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44,
- 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,
-102, 97, 99,116, 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,
-105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44,
- 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116,
- 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116,
- 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97,
- 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,
-120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32,
- 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,
-100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,108,105,103,104,116, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44,
- 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116,
- 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116,
- 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97,
- 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,
-120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32,
- 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,
-100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108, 97,109,112, 95,112,111,115,105,116,105,118,101, 40,102,108,111, 97,
-116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102,
- 97, 99, 32, 61, 32,109, 97,120, 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120,
- 95,118, 97,108,117,101, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44,
- 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,100,105,118,
-105,100,101, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41,
- 10,123, 10, 9,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 47, 49, 50, 56, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,
-109,116,101,120, 95,104, 97,114, 95,109,117,108,116,105,112,108,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,104, 97,
-114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,104, 97,114, 32, 42, 61, 32, 49,
- 50, 56, 46, 48, 59, 10, 10, 9,105,102, 40,104, 97,114, 32, 60, 32, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 49,
- 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,104, 97,114, 32, 62, 32, 53, 49, 49, 46, 48, 41, 32,111,117,116,104, 97,114,
- 32, 61, 32, 53, 49, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 59, 10,125, 10,
- 10,118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, 95,102,114,111,109, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,
-111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 41, 10,123, 10, 9, 97,108,112,104, 97, 32, 61, 32,
- 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, 95,116,111, 95, 99,111,108,
- 40,118,101, 99, 52, 32, 99,111,108, 44, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52,
- 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103,
- 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98,116,111,105,110,116,
- 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 41, 10,
-123, 10, 9,105,110,116,101,110,115,105,116,121, 32, 61, 32,100,111,116, 40,118,101, 99, 51, 40, 48, 46, 51, 53, 44, 32, 48, 46,
- 52, 53, 44, 32, 48, 46, 50, 41, 44, 32,114,103, 98, 46,114,103, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120,
- 95,118, 97,108,117,101, 95,105,110,118,101,114,116, 40,102,108,111, 97,116, 32,105,110,118, 97,108,117,101, 44, 32,111,117,116,
- 32,102,108,111, 97,116, 32,111,117,116,118, 97,108,117,101, 41, 10,123, 10, 9,111,117,116,118, 97,108,117,101, 32, 61, 32, 49,
- 46, 48, 32, 45, 32,105,110,118, 97,108,117,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,105,
-110,118,101,114,116, 40,118,101, 99, 52, 32,105,110,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103,
- 98, 41, 10,123, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,
-105,110,114,103, 98, 46,114,103, 98, 44, 32,105,110,114,103, 98, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,
-120, 95,118, 97,108,117,101, 95,115,116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,102,
-108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,
-110, 99,105,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,105,110,116,101,110,115,105,116,121, 41, 10,123, 10,
- 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,105,110,116,101,110,115,105,116,121, 59, 10, 9,111,117,116,105,110,116,
-101,110,115,105,116,121, 32, 61, 32,105,110,116,101,110,115,105,116,121, 42,115,116,101,110, 99,105,108, 59, 10, 9,111,117,116,
-115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,
-109,116,101,120, 95,114,103, 98, 95,115,116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,
-118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,
-111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61,
- 32,114,103, 98, 46, 97, 59, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32,
-114,103, 98, 46, 97, 42,115,116,101,110, 99,105,108, 41, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116,
-101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103,
- 95,111,102,115, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,111,102,115, 44, 32,111,117,116, 32,118,
-101, 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,116,101,120, 99,
-111, 32, 43, 32,111,102,115, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,115,105,
-122,101, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101,
- 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,115,105,122,101, 42,
-116,101,120, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 40,118,
-101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,
-118,101, 99, 32, 61, 32,118,101, 99, 51, 40,118,101, 99, 46,120,121, 42, 48, 46, 53, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53,
- 44, 32, 48, 46, 53, 41, 44, 32,118,101, 99, 46,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,105,109, 97,
-103,101, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,
-116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 41, 10,123,
- 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,
-121, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,
-111,114,109, 97,108, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44,
- 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 32, 32, 32, 32,118,101, 99, 52, 32, 99,111,108,
+108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,
+111, 97,116, 32,102, 97, 99,109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,
+102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,
+120, 99,111,108, 46,114, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,
+108, 46,114, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108,
+ 46,114, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,
+108, 32, 62, 32,111,117,116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,
+101, 32,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,
+116, 42,116,101,120, 99,111,108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46, 98, 41, 32,
+105,110, 99,111,108, 46, 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,
+116, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,104,117,101, 40,118,101, 99,
+ 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,
+116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123,
+ 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,104,117,101, 40,102, 97, 99,116, 42,102, 97, 99,103, 44,
+ 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44,
+ 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103,
+ 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 97,116, 40,118,101, 99, 51, 32,111,117,116,
+ 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,
+111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99,
+ 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,115, 97,116, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52,
+ 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41,
+ 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10,
+ 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,118, 97,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,
+118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102,
+ 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108,
+ 59, 10, 10, 9,109,105,120, 95,118, 97,108, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,
+111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108,
+ 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100,
+ 32,109,116,101,120, 95,114,103, 98, 95, 99,111,108,111,114, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99,
+ 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103,
+ 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10,
+ 9,109,105,120, 95, 99,111,108,111,114, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,
+108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41,
+ 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,
+109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,105,110,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,116,
+ 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,109, 41, 10,123, 10,
+ 9,102, 97, 99,116, 32, 42, 61, 32, 97, 98,115, 40,102, 97, 99,103, 41, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,
+102, 97, 99,116, 59, 10, 10, 9,105,102, 40,102, 97, 99,103, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116,
+ 32,116,109,112, 32, 61, 32,102, 97, 99,116, 59, 10, 9, 9,102, 97, 99,116, 32, 61, 32,102, 97, 99,109, 59, 10, 9, 9,102, 97,
+ 99,109, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,
+ 98,108,101,110,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108,
+ 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,
+111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,
+118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,
+105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,
+108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,109,117,108, 40,102,108,111, 97,116, 32,
+111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116,
+ 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123,
+ 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102,
+ 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45,
+ 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120,
+ 99,111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,
+115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,
+108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,
+108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120,
+ 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10,
+ 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 49, 46, 48,
+ 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42,
+ 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,
+117,101, 95,115,117, 98, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,
+108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,
+108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120,
+ 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10,
+ 9,102, 97, 99,116, 32, 61, 32, 45,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120,
+ 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101,
+ 95, 97,100,100, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44,
+ 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111,
+ 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118,
+ 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102,
+ 97, 99,116, 32, 61, 32,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108,
+ 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,
+118, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,
+111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,
+105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,
+101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,102, 40,116,
+101,120, 99,111,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, 9, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116,
+ 99,111,108, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 47,116,101,120, 99,111,108, 59, 10, 9,101,108,115,101, 10,
+ 9, 9,105,110, 99,111,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,
+101, 95,100,105,102,102, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,
+108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,
+108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120,
+ 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10,
+ 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42, 97, 98,115, 40,
+116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118,
+ 97,108,117,101, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,
+120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,
+116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,
+116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41,
+ 59, 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102,
+ 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101,
+ 32,105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,
+108,117,101, 95,108,105,103,104,116, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,
+120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,
+116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,
+116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41,
+ 59, 10, 10, 9,102,108,111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102,
+ 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101,
+ 32,105,110, 99,111,108, 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,
+108,117,101, 95, 99,108, 97,109,112, 95,112,111,115,105,116,105,118,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,
+116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32,109, 97,120, 40,
+102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108,
+ 97,109,112, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41,
+ 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48,
+ 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,100,105,118,105,100,101, 40,102,108,111, 97,116,
+ 32,104, 97,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,111,117,116,104, 97,
+114, 32, 61, 32,104, 97,114, 47, 49, 50, 56, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,
+109,117,108,116,105,112,108,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,111,117,116, 32,102,108,
+111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,104, 97,114, 32, 42, 61, 32, 49, 50, 56, 46, 48, 59, 10, 10, 9,105,
+102, 40,104, 97,114, 32, 60, 32, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101,
+ 32,105,102, 40,104, 97,114, 32, 62, 32, 53, 49, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 53, 49, 49, 46, 48, 59,
+ 10, 9,101,108,115,101, 32,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,
+120, 95, 97,108,112,104, 97, 95,102,114,111,109, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,
+108,111, 97,116, 32, 97,108,112,104, 97, 41, 10,123, 10, 9, 97,108,112,104, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10,
+ 10,118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104, 97, 95,116,111, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108,
+ 44, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,
+123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41,
+ 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98,116,111,105,110,116, 40,118,101, 99, 52, 32,114,103, 98,
+ 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,105,110,116,101,110,115,
+105,116,121, 32, 61, 32,100,111,116, 40,118,101, 99, 51, 40, 48, 46, 51, 53, 44, 32, 48, 46, 52, 53, 44, 32, 48, 46, 50, 41, 44,
+ 32,114,103, 98, 46,114,103, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,105,110,
+118,101,114,116, 40,102,108,111, 97,116, 32,105,110,118, 97,108,117,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,
+116,118, 97,108,117,101, 41, 10,123, 10, 9,111,117,116,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 32, 45, 32,105,110,118, 97,
+108,117,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,105,110,118,101,114,116, 40,118,101, 99,
+ 52, 32,105,110,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,
+114,103, 98, 32, 61, 32,118,101, 99, 52, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,105,110,114,103, 98, 46,114,103, 98,
+ 44, 32,105,110,114,103, 98, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115,
+116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,102,108,111, 97,116, 32,105,110,116,101,
+110,115,105,116,121, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116,
+ 32,102,108,111, 97,116, 32,111,117,116,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97,
+ 99,116, 32, 61, 32,105,110,116,101,110,115,105,116,121, 59, 10, 9,111,117,116,105,110,116,101,110,115,105,116,121, 32, 61, 32,
+105,110,116,101,110,115,105,116,121, 42,115,116,101,110, 99,105,108, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61,
+ 32,115,116,101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,
+115,116,101,110, 99,105,108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,118,101, 99, 52, 32,114,103, 98, 44,
+ 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,
+111,117,116,114,103, 98, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,114,103, 98, 46, 97, 59, 10, 9,
+111,117,116,114,103, 98, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32,114,103, 98, 46, 97, 42,115,116,101,
+110, 99,105,108, 41, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,105,108, 42,102, 97, 99,
+116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,111,102,115, 40,118,101, 99, 51,
+ 32,116,101,120, 99,111, 44, 32,118,101, 99, 51, 32,111,102,115, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116,101,
+120, 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,116,101,120, 99,111, 32, 43, 32,111,102,115, 59, 10,
+125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,115,105,122,101, 40,118,101, 99, 51, 32,116,
+101,120, 99,111, 44, 32,118,101, 99, 51, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116,101,120,
+ 99,111, 41, 10,123, 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,115,105,122,101, 42,116,101,120, 99,111, 59, 10,125, 10,
+ 10,118,111,105,100, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,
+111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99,
+ 51, 40,118,101, 99, 46,120,121, 42, 48, 46, 53, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 32, 48, 46, 53, 41, 44, 32,118,
+101, 99, 46,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32,116,
+101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,
+ 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61,
+ 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118, 97,108,117,
+101, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,111,114,109, 97,108, 40,118,101, 99,
+ 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 51,
+ 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 47, 32, 84,104,101, 32,105,110,118,101,114,116, 32,111,102, 32,116,104,101,
+ 32,114,101,100, 32, 99,104, 97,110,110,101,108, 32,105,115, 32,116,111, 32,109, 97,107,101, 10, 9, 47, 47, 32,116,104,101, 32,
+110,111,114,109, 97,108, 32,109, 97,112, 32, 99,111,109,112,108,105, 97,110,116, 32,119,105,116,104, 32,116,104,101, 32,111,117,
+116,115,105,100,101, 32,119,111,114,108,100, 46, 10, 9, 47, 47, 32, 73,116, 32,110,101,101,100,115, 32,116,111, 32, 98,101, 32,
+100,111,110,101, 32, 98,101, 99, 97,117,115,101, 32,105,110, 32, 66,108,101,110,100,101,114, 10, 9, 47, 47, 32,116,104,101, 32,
+110,111,114,109, 97,108, 32,117,115,101,100, 32,112,111,105,110,116,115, 32,105,110,119, 97,114,100, 46, 10, 9, 47, 47, 32, 83,
+104,111,117,108,100, 32,116,104,105,115, 32,101,118,101,114, 32, 99,104, 97,110,103,101, 32,116,104,105,115, 32,110,101,103, 97,
+116,101, 32,109,117,115,116, 32, 98,101, 32,114,101,109,111,118,101,100, 46, 10, 32, 32, 32, 32,118,101, 99, 52, 32, 99,111,108,
111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,
-110,111,114,109, 97,108, 32, 61, 32, 50, 46, 48, 42, 40,118,101, 99, 51, 40, 99,111,108,111,114, 46,114, 44, 32, 45, 99,111,108,
-111,114, 46,103, 44, 32, 99,111,108,111,114, 46, 98, 41, 32, 45, 32,118,101, 99, 51, 40, 48, 46, 53, 44, 32, 45, 48, 46, 53, 44,
+110,111,114,109, 97,108, 32, 61, 32, 50, 46, 48, 42, 40,118,101, 99, 51, 40, 45, 99,111,108,111,114, 46,114, 44, 32, 99,111,108,
+111,114, 46,103, 44, 32, 99,111,108,111,114, 46, 98, 41, 32, 45, 32,118,101, 99, 51, 40, 45, 48, 46, 53, 44, 32, 48, 46, 53, 44,
32, 48, 46, 53, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,110,111,114,109, 97,108,
115, 95,105,110,105,116, 40, 32,118,101, 99, 51, 32,118, 78, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78,111,114,103, 44,
32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118,
diff --git a/source/blender/ikplugin/BIK_api.h b/source/blender/ikplugin/BIK_api.h
index 0f4fea89c37..2ccd70723a3 100644
--- a/source/blender/ikplugin/BIK_api.h
+++ b/source/blender/ikplugin/BIK_api.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/ikplugin/intern/ikplugin_api.c b/source/blender/ikplugin/intern/ikplugin_api.c
index 1604f591bda..e26e3150669 100644
--- a/source/blender/ikplugin/intern/ikplugin_api.c
+++ b/source/blender/ikplugin/intern/ikplugin_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/ikplugin/intern/ikplugin_api.h b/source/blender/ikplugin/intern/ikplugin_api.h
index edd98c5c239..f93c7ccd292 100644
--- a/source/blender/ikplugin/intern/ikplugin_api.h
+++ b/source/blender/ikplugin/intern/ikplugin_api.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/ikplugin/intern/iksolver_plugin.c b/source/blender/ikplugin/intern/iksolver_plugin.c
index 11be240ab76..a79d46c2780 100644
--- a/source/blender/ikplugin/intern/iksolver_plugin.c
+++ b/source/blender/ikplugin/intern/iksolver_plugin.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/ikplugin/intern/iksolver_plugin.h b/source/blender/ikplugin/intern/iksolver_plugin.h
index d41cc785c12..0cf03e78d8d 100644
--- a/source/blender/ikplugin/intern/iksolver_plugin.h
+++ b/source/blender/ikplugin/intern/iksolver_plugin.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/ikplugin/intern/itasc_plugin.cpp b/source/blender/ikplugin/intern/itasc_plugin.cpp
index c3b2ad0804d..30ff9769fb5 100644
--- a/source/blender/ikplugin/intern/itasc_plugin.cpp
+++ b/source/blender/ikplugin/intern/itasc_plugin.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/ikplugin/intern/itasc_plugin.h b/source/blender/ikplugin/intern/itasc_plugin.h
index 8f7eaedcd31..906fa9c8ed3 100644
--- a/source/blender/ikplugin/intern/itasc_plugin.h
+++ b/source/blender/ikplugin/intern/itasc_plugin.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/CMakeLists.txt b/source/blender/imbuf/CMakeLists.txt
index f007305e148..c2c9c89ad10 100644
--- a/source/blender/imbuf/CMakeLists.txt
+++ b/source/blender/imbuf/CMakeLists.txt
@@ -29,6 +29,7 @@ set(INC
../avi
../blenlib
../blenkernel
+ ../blenloader
../makesdna
../../../intern/memutil
../../../intern/guardedalloc
diff --git a/source/blender/imbuf/IMB_thumbs.h b/source/blender/imbuf/IMB_thumbs.h
index 02f8e1567bf..ae7ccab98a1 100644
--- a/source/blender/imbuf/IMB_thumbs.h
+++ b/source/blender/imbuf/IMB_thumbs.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/SConscript b/source/blender/imbuf/SConscript
index c5c08a2856a..ecb9a89c274 100644
--- a/source/blender/imbuf/SConscript
+++ b/source/blender/imbuf/SConscript
@@ -4,7 +4,7 @@ Import ('env')
sources = env.Glob('intern/*.c')
incs = '. ../makesdna #/intern/guardedalloc #/intern/memutil ../blenlib'
-incs += ' ../avi ../blenkernel'
+incs += ' ../avi ../blenkernel ../blenloader'
incs += ' ' + env['BF_JPEG_INC']
diff --git a/source/blender/imbuf/intern/IMB_anim.h b/source/blender/imbuf/intern/IMB_anim.h
index 6e7f3c34e0f..ea492d8bbf5 100644
--- a/source/blender/imbuf/intern/IMB_anim.h
+++ b/source/blender/imbuf/intern/IMB_anim.h
@@ -1,4 +1,4 @@
-/**
+/*
* allocimbuf.h
*
* $Id$
diff --git a/source/blender/imbuf/intern/IMB_filetype.h b/source/blender/imbuf/intern/IMB_filetype.h
index f82f93c83a1..a1066634aea 100644
--- a/source/blender/imbuf/intern/IMB_filetype.h
+++ b/source/blender/imbuf/intern/IMB_filetype.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -81,7 +81,6 @@ int imb_savejp2(struct ImBuf *ibuf, const char *name, int flags);
/* jpeg */
int imb_is_a_jpeg(unsigned char *mem);
int imb_savejpeg(struct ImBuf *ibuf, const char *name, int flags);
-struct ImBuf * imb_ibJpegImageFromFilename (const char * filename, int flags);
struct ImBuf * imb_load_jpeg (unsigned char * buffer, size_t size, int flags);
/* bmp */
diff --git a/source/blender/imbuf/intern/IMB_metadata.h b/source/blender/imbuf/intern/IMB_metadata.h
index 625e0791e07..9011c7d04a7 100644
--- a/source/blender/imbuf/intern/IMB_metadata.h
+++ b/source/blender/imbuf/intern/IMB_metadata.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c
index 45a8986f835..15369e17b28 100644
--- a/source/blender/imbuf/intern/anim_movie.c
+++ b/source/blender/imbuf/intern/anim_movie.c
@@ -1,4 +1,4 @@
-/**
+/*
* anim.c
*
* $Id$
diff --git a/source/blender/imbuf/intern/bmp.c b/source/blender/imbuf/intern/bmp.c
index 8aae41b653c..cf2638071bb 100644
--- a/source/blender/imbuf/intern/bmp.c
+++ b/source/blender/imbuf/intern/bmp.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/cineon/CMakeLists.txt b/source/blender/imbuf/intern/cineon/CMakeLists.txt
index f01de6b2620..92cba72c094 100644
--- a/source/blender/imbuf/intern/cineon/CMakeLists.txt
+++ b/source/blender/imbuf/intern/cineon/CMakeLists.txt
@@ -29,6 +29,7 @@ set(INC
..
../..
../../../blenkernel
+ ../../../blenloader
../../../blenlib
../../../makesdna
../../../../../intern/guardedalloc
diff --git a/source/blender/imbuf/intern/cineon/SConscript b/source/blender/imbuf/intern/cineon/SConscript
index 25088c6e34a..e1afb5ebd2d 100644
--- a/source/blender/imbuf/intern/cineon/SConscript
+++ b/source/blender/imbuf/intern/cineon/SConscript
@@ -5,6 +5,7 @@ source_files = env.Glob('*.c')
incs = ['.',
'../../../blenkernel',
+ '../../../blenloader',
'../../',
'..',
'../../../blenlib',
diff --git a/source/blender/imbuf/intern/cineon/cineon_dpx.c b/source/blender/imbuf/intern/cineon/cineon_dpx.c
index 0551922b19a..9882a9ea5ae 100644
--- a/source/blender/imbuf/intern/cineon/cineon_dpx.c
+++ b/source/blender/imbuf/intern/cineon/cineon_dpx.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/dds/BlockDXT.cpp b/source/blender/imbuf/intern/dds/BlockDXT.cpp
index f482bd36271..b718c1255b2 100644
--- a/source/blender/imbuf/intern/dds/BlockDXT.cpp
+++ b/source/blender/imbuf/intern/dds/BlockDXT.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/BlockDXT.h b/source/blender/imbuf/intern/dds/BlockDXT.h
index a9ecf8d3a88..cabd7cfeaea 100644
--- a/source/blender/imbuf/intern/dds/BlockDXT.h
+++ b/source/blender/imbuf/intern/dds/BlockDXT.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/Color.h b/source/blender/imbuf/intern/dds/Color.h
index 1f32b589bf8..fc180225522 100644
--- a/source/blender/imbuf/intern/dds/Color.h
+++ b/source/blender/imbuf/intern/dds/Color.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/ColorBlock.cpp b/source/blender/imbuf/intern/dds/ColorBlock.cpp
index 637ececce5d..c03a8a2ebc4 100644
--- a/source/blender/imbuf/intern/dds/ColorBlock.cpp
+++ b/source/blender/imbuf/intern/dds/ColorBlock.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/ColorBlock.h b/source/blender/imbuf/intern/dds/ColorBlock.h
index 74cdcf661ed..f400a3ee0bb 100644
--- a/source/blender/imbuf/intern/dds/ColorBlock.h
+++ b/source/blender/imbuf/intern/dds/ColorBlock.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/Common.h b/source/blender/imbuf/intern/dds/Common.h
index 9712c290f7d..5fdeadd2a39 100644
--- a/source/blender/imbuf/intern/dds/Common.h
+++ b/source/blender/imbuf/intern/dds/Common.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
index f3518324386..8acec006ed8 100644
--- a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
+++ b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/DirectDrawSurface.h b/source/blender/imbuf/intern/dds/DirectDrawSurface.h
index ed1972aa966..1b4694f9306 100644
--- a/source/blender/imbuf/intern/dds/DirectDrawSurface.h
+++ b/source/blender/imbuf/intern/dds/DirectDrawSurface.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/Image.cpp b/source/blender/imbuf/intern/dds/Image.cpp
index f0da772156a..7041aab2e47 100644
--- a/source/blender/imbuf/intern/dds/Image.cpp
+++ b/source/blender/imbuf/intern/dds/Image.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/Image.h b/source/blender/imbuf/intern/dds/Image.h
index cbe09c64550..e4286cba58a 100644
--- a/source/blender/imbuf/intern/dds/Image.h
+++ b/source/blender/imbuf/intern/dds/Image.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/PixelFormat.h b/source/blender/imbuf/intern/dds/PixelFormat.h
index e27ddba0c43..a9a41b71326 100644
--- a/source/blender/imbuf/intern/dds/PixelFormat.h
+++ b/source/blender/imbuf/intern/dds/PixelFormat.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/Stream.cpp b/source/blender/imbuf/intern/dds/Stream.cpp
index b61634a9d9e..b9cb10d9acc 100644
--- a/source/blender/imbuf/intern/dds/Stream.cpp
+++ b/source/blender/imbuf/intern/dds/Stream.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/Stream.h b/source/blender/imbuf/intern/dds/Stream.h
index c14781616ad..991caea50da 100644
--- a/source/blender/imbuf/intern/dds/Stream.h
+++ b/source/blender/imbuf/intern/dds/Stream.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/dds_api.cpp b/source/blender/imbuf/intern/dds/dds_api.cpp
index 94ff8fd5d78..16832ef9a47 100644
--- a/source/blender/imbuf/intern/dds/dds_api.cpp
+++ b/source/blender/imbuf/intern/dds/dds_api.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/dds/dds_api.h b/source/blender/imbuf/intern/dds/dds_api.h
index 6aea3058863..d3f2048d5eb 100644
--- a/source/blender/imbuf/intern/dds/dds_api.h
+++ b/source/blender/imbuf/intern/dds/dds_api.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/divers.c b/source/blender/imbuf/intern/divers.c
index 9605185e897..3a89251a2fc 100644
--- a/source/blender/imbuf/intern/divers.c
+++ b/source/blender/imbuf/intern/divers.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/filetype.c b/source/blender/imbuf/intern/filetype.c
index 0702fbe3907..4e96fd94555 100644
--- a/source/blender/imbuf/intern/filetype.c
+++ b/source/blender/imbuf/intern/filetype.c
@@ -56,11 +56,11 @@ void quicktime_exit(void);
#endif
ImFileType IMB_FILE_TYPES[]= {
- {NULL, NULL, imb_is_a_iris, imb_ftype_iris, imb_loadiris, imb_saveiris, NULL, 0, IMAGIC},
{NULL, NULL, imb_is_a_jpeg, imb_ftype_default, imb_load_jpeg, imb_savejpeg, NULL, 0, JPG},
{NULL, NULL, imb_is_a_png, imb_ftype_default, imb_loadpng, imb_savepng, NULL, 0, PNG},
{NULL, NULL, imb_is_a_bmp, imb_ftype_default, imb_bmp_decode, imb_savebmp, NULL, 0, BMP},
{NULL, NULL, imb_is_a_targa, imb_ftype_default, imb_loadtarga, imb_savetarga, NULL, 0, TGA},
+ {NULL, NULL, imb_is_a_iris, imb_ftype_iris, imb_loadiris, imb_saveiris, NULL, 0, IMAGIC},
#ifdef WITH_CINEON
{NULL, NULL, imb_is_dpx, imb_ftype_default, imb_loaddpx, imb_save_dpx, NULL, IM_FTYPE_FLOAT, DPX},
{NULL, NULL, imb_is_cineon, imb_ftype_default, imb_loadcineon, imb_savecineon, NULL, IM_FTYPE_FLOAT, CINEON},
diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c
index 42f87049c2a..52ec4825d2b 100644
--- a/source/blender/imbuf/intern/filter.c
+++ b/source/blender/imbuf/intern/filter.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/imageprocess.c b/source/blender/imbuf/intern/imageprocess.c
index 8fa76fa4502..0bc311744a1 100644
--- a/source/blender/imbuf/intern/imageprocess.c
+++ b/source/blender/imbuf/intern/imageprocess.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/imbuf.h b/source/blender/imbuf/intern/imbuf.h
index 1e2f3ec461a..885bca29ac2 100644
--- a/source/blender/imbuf/intern/imbuf.h
+++ b/source/blender/imbuf/intern/imbuf.h
@@ -1,4 +1,4 @@
-/**
+/*
* imbuf.h (mar-2001 nzc)
*
* This header might have to become external...
diff --git a/source/blender/imbuf/intern/iris.c b/source/blender/imbuf/intern/iris.c
index 51359dc0e68..f29f68bdcb4 100644
--- a/source/blender/imbuf/intern/iris.c
+++ b/source/blender/imbuf/intern/iris.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/jp2.c b/source/blender/imbuf/intern/jp2.c
index 6f04740c778..72b317c36da 100644
--- a/source/blender/imbuf/intern/jp2.c
+++ b/source/blender/imbuf/intern/jp2.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/jpeg.c b/source/blender/imbuf/intern/jpeg.c
index c685a54cbe9..d23223e4c11 100644
--- a/source/blender/imbuf/intern/jpeg.c
+++ b/source/blender/imbuf/intern/jpeg.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -434,37 +434,6 @@ next_stamp_marker:
return(ibuf);
}
-ImBuf * imb_ibJpegImageFromFilename (const char * filename, int flags)
-{
- struct jpeg_decompress_struct _cinfo, *cinfo = &_cinfo;
- struct my_error_mgr jerr;
- FILE * infile;
- ImBuf * ibuf;
-
- if ((infile = fopen(filename, "rb")) == NULL) return 0;
-
- cinfo->err = jpeg_std_error(&jerr.pub);
- jerr.pub.error_exit = jpeg_error;
-
- /* Establish the setjmp return context for my_error_exit to use. */
- if (setjmp(jerr.setjmp_buffer)) {
- /* If we get here, the JPEG code has signaled an error.
- * We need to clean up the JPEG object, close the input file, and return.
- */
- jpeg_destroy_decompress(cinfo);
- fclose(infile);
- return NULL;
- }
-
- jpeg_create_decompress(cinfo);
- jpeg_stdio_src(cinfo, infile);
-
- ibuf = ibJpegImageFromCinfo(cinfo, flags);
-
- fclose(infile);
- return(ibuf);
-}
-
ImBuf * imb_load_jpeg (unsigned char * buffer, size_t size, int flags)
{
struct jpeg_decompress_struct _cinfo, *cinfo = &_cinfo;
diff --git a/source/blender/imbuf/intern/metadata.c b/source/blender/imbuf/intern/metadata.c
index 38ffa2fe2fa..67daaf36aad 100644
--- a/source/blender/imbuf/intern/metadata.c
+++ b/source/blender/imbuf/intern/metadata.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp
index 7f334a9f1ad..fe18984e528 100644
--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp
+++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPLLICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/openexr/openexr_api.h b/source/blender/imbuf/intern/openexr/openexr_api.h
index 6d846109846..cd9f370f295 100644
--- a/source/blender/imbuf/intern/openexr/openexr_api.h
+++ b/source/blender/imbuf/intern/openexr/openexr_api.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/openexr/openexr_multi.h b/source/blender/imbuf/intern/openexr/openexr_multi.h
index 6455d636f1a..490c7050661 100644
--- a/source/blender/imbuf/intern/openexr/openexr_multi.h
+++ b/source/blender/imbuf/intern/openexr/openexr_multi.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/png.c b/source/blender/imbuf/intern/png.c
index 390e04ba303..23a18df6197 100644
--- a/source/blender/imbuf/intern/png.c
+++ b/source/blender/imbuf/intern/png.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/readimage.c b/source/blender/imbuf/intern/readimage.c
index 5a0f79c184d..d4bd0ea59d0 100644
--- a/source/blender/imbuf/intern/readimage.c
+++ b/source/blender/imbuf/intern/readimage.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/rectop.c b/source/blender/imbuf/intern/rectop.c
index eba32c73688..322e887ba8e 100644
--- a/source/blender/imbuf/intern/rectop.c
+++ b/source/blender/imbuf/intern/rectop.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/rotate.c b/source/blender/imbuf/intern/rotate.c
index d4e1a45f0fa..ba4e3664c89 100644
--- a/source/blender/imbuf/intern/rotate.c
+++ b/source/blender/imbuf/intern/rotate.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/scaling.c b/source/blender/imbuf/intern/scaling.c
index 1f50deaee2a..ea6cd0ffd78 100644
--- a/source/blender/imbuf/intern/scaling.c
+++ b/source/blender/imbuf/intern/scaling.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/targa.c b/source/blender/imbuf/intern/targa.c
index a748cc1ab1d..fe1e00b4c2f 100644
--- a/source/blender/imbuf/intern/targa.c
+++ b/source/blender/imbuf/intern/targa.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/thumbs.c b/source/blender/imbuf/intern/thumbs.c
index c0fd6584d6f..1585206bb6b 100644
--- a/source/blender/imbuf/intern/thumbs.c
+++ b/source/blender/imbuf/intern/thumbs.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -69,7 +69,7 @@ static int get_thumb_dir( char* dir , ThumbSize size)
/* yes, applications shouldn't store data there, but so does GIMP :)*/
SHGetSpecialFolderPath(0, dir, CSIDL_PROFILE, 0);
#else
- char* home = getenv("HOME");
+ const char* home = getenv("HOME");
if (!home) return 0;
BLI_strncpy(dir, home, FILE_MAX);
#endif
diff --git a/source/blender/imbuf/intern/thumbs_blend.c b/source/blender/imbuf/intern/thumbs_blend.c
index 1158a3d9491..f12a795b0d6 100644
--- a/source/blender/imbuf/intern/thumbs_blend.c
+++ b/source/blender/imbuf/intern/thumbs_blend.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c
index 1e50e2997d1..cdb7823e4f5 100644
--- a/source/blender/imbuf/intern/util.c
+++ b/source/blender/imbuf/intern/util.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/imbuf/intern/writeimage.c b/source/blender/imbuf/intern/writeimage.c
index 9c2855b0544..d6694efec91 100644
--- a/source/blender/imbuf/intern/writeimage.c
+++ b/source/blender/imbuf/intern/writeimage.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/makesdna/CMakeLists.txt b/source/blender/makesdna/CMakeLists.txt
index b1e1b589c6e..e02b33b92c1 100644
--- a/source/blender/makesdna/CMakeLists.txt
+++ b/source/blender/makesdna/CMakeLists.txt
@@ -24,67 +24,4 @@
#
# ***** END GPL LICENSE BLOCK *****
-# Use PARENT_SCOPE so makesrna can access.
-set(SRC_DNA_INC
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_ID.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_action_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_actuator_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_anim_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_armature_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_boid_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_brush_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_camera_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_cloth_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_color_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_constraint_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_controller_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_curve_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_customdata_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_documentation.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_effect_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_fileglobal_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_genfile.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_gpencil_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_group_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_image_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_ipo_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_key_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_lamp_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_lattice_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_listBase.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_material_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_mesh_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_meshdata_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_meta_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_modifier_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_nla_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_node_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_object_fluidsim.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_object_force.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_object_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_outliner_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_packedFile_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_particle_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_property_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_scene_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_screen_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_sdna_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_sensor_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_sequence_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_smoke_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_sound_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_space_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_text_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_texture_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_userdef_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_vec_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_vfont_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_view2d_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_view3d_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_windowmanager_types.h
- ${CMAKE_CURRENT_SOURCE_DIR}/DNA_world_types.h
-
- PARENT_SCOPE
-)
-
add_subdirectory(intern)
diff --git a/source/blender/makesdna/DNA_actuator_types.h b/source/blender/makesdna/DNA_actuator_types.h
index 4f7be73e7fa..683d8142cc9 100644
--- a/source/blender/makesdna/DNA_actuator_types.h
+++ b/source/blender/makesdna/DNA_actuator_types.h
@@ -237,12 +237,12 @@ typedef struct bActuator {
char name[32];
/**
- * \var Data must point to an object actuator type struct.
+ * data must point to an object actuator type struct.
*/
void *data;
/**
- * \var For ipo's and props: to find out which object the actuator
+ * For ipo's and props: to find out which object the actuator
* belongs to */
struct Object *ob;
diff --git a/source/blender/makesdna/DNA_brush_types.h b/source/blender/makesdna/DNA_brush_types.h
index 3693f43b69e..3d143dc3d0f 100644
--- a/source/blender/makesdna/DNA_brush_types.h
+++ b/source/blender/makesdna/DNA_brush_types.h
@@ -85,13 +85,14 @@ typedef struct Brush {
char sculpt_tool; /* active sculpt tool */
char vertexpaint_tool; /* active vertex/weight paint tool/blend mode */
char imagepaint_tool; /* active image paint tool */
- char pad3;
+ char pad3[5];
float autosmooth_factor;
float crease_pinch_factor;
float plane_trim;
+ float height; /* affectable height of brush (layer height for layer tool, i.e.) */
float texture_sample_bias;
int texture_overlay_alpha;
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 687a05f7afb..28840d55efc 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -588,7 +588,7 @@ typedef struct ParticleInstanceModifierData {
typedef enum {
eExplodeFlag_CalcFaces = (1<<0),
eExplodeFlag_PaSize = (1<<1),
- eExplodeFlag_EdgeSplit = (1<<2),
+ eExplodeFlag_EdgeCut = (1<<2),
eExplodeFlag_Unborn = (1<<3),
eExplodeFlag_Alive = (1<<4),
eExplodeFlag_Dead = (1<<5),
@@ -599,6 +599,7 @@ typedef struct ExplodeModifierData {
int *facepa;
short flag, vgroup;
float protect;
+ char uvname[32];
} ExplodeModifierData;
typedef struct MultiresModifierData {
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index a9f688e29b9..803e5418bcc 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -70,21 +70,29 @@ typedef struct bNodeSocket {
char name[32];
bNodeStack ns; /* custom data for inputs, only UI writes in this */
- short type, flag; /* type is copy from socket type struct */
- short limit, stack_index; /* limit for dependency sort, stack_index for exec */
- short intern; /* intern = tag for group nodes */
- short stack_index_ext; /* for groups, to find the caller stack index */
- int pad1;
+ short type, flag;
+ short limit; /* max. number of links */
+
+ /* stack data info (only during execution!) */
+ short stack_type; /* type of stack reference */
+ /* XXX only one of stack_ptr or stack_index is used (depending on stack_type).
+ * could store the index in the pointer with SET_INT_IN_POINTER (a bit ugly).
+ * (union won't work here, not supported by DNA)
+ */
+ struct bNodeStack *stack_ptr; /* constant input value */
+ short stack_index; /* local stack index or external input number */
+ short pad1;
float locx, locy;
/* internal data to retrieve relations and groups */
- int own_index, to_index; /* group socket identifiers, to find matching pairs after reading files */
+ int own_index; /* group socket identifiers, to find matching pairs after reading files */
+ struct bNodeSocket *groupsock;
+ int to_index; /* XXX deprecated, only used for restoring old group node links */
+ int pad2;
- struct bNodeSocket *tosock; /* group-node sockets point to the internal group counterpart sockets, set after read file */
struct bNodeLink *link; /* a link pointer, set in nodeSolveOrder() */
-
} bNodeSocket;
/* sock->type */
@@ -99,11 +107,16 @@ typedef struct bNodeSocket {
#define SOCK_IN_USE 4
/* unavailable is for dynamic sockets */
#define SOCK_UNAVAIL 8
-#
-#
+
+/* sock->stack_type */
+#define SOCK_STACK_LOCAL 1 /* part of the local tree stack */
+#define SOCK_STACK_EXTERN 2 /* use input stack pointer */
+#define SOCK_STACK_CONST 3 /* use pointer to constant input value */
+
typedef struct bNodePreview {
unsigned char *rect;
short xsize, ysize;
+ int pad;
} bNodePreview;
@@ -185,7 +198,7 @@ typedef struct bNodeTree {
int flag, pad;
ListBase alltypes; /* type definitions */
- struct bNodeType *owntype; /* for groups or dynamic trees, no read/write */
+ ListBase inputs, outputs; /* external sockets for group nodes */
int pad2[2];
@@ -207,7 +220,11 @@ typedef struct bNodeTree {
#define NTREE_EXEC_INIT 2
/* ntree->flag */
-#define NTREE_DS_EXPAND 1 /* for animation editors */
+#define NTREE_DS_EXPAND 1 /* for animation editors */
+/* XXX not nice, but needed as a temporary flag
+ * for group updates after library linking.
+ */
+#define NTREE_DO_VERSIONS 1024
/* data structs, for node->storage */
diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h
index 51076dd59a1..37568a22f54 100644
--- a/source/blender/makesdna/DNA_object_force.h
+++ b/source/blender/makesdna/DNA_object_force.h
@@ -397,6 +397,8 @@ typedef struct SoftBody {
#define PTCACHE_READ_INFO 1024
/* dont use the filename of the blendfile the data is linked from (write a local cache) */
#define PTCACHE_IGNORE_LIBPATH 2048
+/* high resolution cache is saved for smoke for backwards compatibility, so set this flag to know it's a "fake" cache */
+#define PTCACHE_FAKE_SMOKE (1<<12)
/* PTCACHE_OUTDATED + PTCACHE_FRAMES_SKIPPED */
#define PTCACHE_REDO_NEEDED 258
diff --git a/source/blender/makesdna/DNA_property_types.h b/source/blender/makesdna/DNA_property_types.h
index 025f79a6dbf..04f0a6e60c6 100644
--- a/source/blender/makesdna/DNA_property_types.h
+++ b/source/blender/makesdna/DNA_property_types.h
@@ -1,4 +1,4 @@
-/**
+/*
*
*
* $Id$
diff --git a/source/blender/makesdna/intern/CMakeLists.txt b/source/blender/makesdna/intern/CMakeLists.txt
index ba9e7d30e80..bb95e2c0fbc 100644
--- a/source/blender/makesdna/intern/CMakeLists.txt
+++ b/source/blender/makesdna/intern/CMakeLists.txt
@@ -29,6 +29,7 @@
blender_include_dirs(
../../../../intern/guardedalloc
+ ../../blenloader
..
)
@@ -56,6 +57,9 @@ add_custom_command(
)
# Build bf_dna library
+set(INC
+)
+
set(SRC
dna_genfile.c
dna.c
diff --git a/source/blender/makesdna/intern/SConscript b/source/blender/makesdna/intern/SConscript
index d4836631104..e51ee53e078 100644
--- a/source/blender/makesdna/intern/SConscript
+++ b/source/blender/makesdna/intern/SConscript
@@ -18,7 +18,7 @@ dna = env.Clone()
makesdna_tool.Append(CCFLAGS = '-DBASE_HEADER="\\"source/blender/makesdna/\\"" ')
makesdna_tool.Append (CPPPATH = ['#/intern/guardedalloc',
- '../../makesdna'])
+ '../../makesdna', '../../blenloader'])
if env['OURPLATFORM'] == 'linuxcross':
USE_WINE = True # when cross compiling on linux 64bit this is useful
diff --git a/source/blender/makesdna/intern/dna_genfile.c b/source/blender/makesdna/intern/dna_genfile.c
index c103e74ca34..3b6aafaffa0 100644
--- a/source/blender/makesdna/intern/dna_genfile.c
+++ b/source/blender/makesdna/intern/dna_genfile.c
@@ -31,6 +31,11 @@
* DNA handling
*/
+/** \file blender/makesdna/intern/dna_genfile.c
+ * \ingroup DNA
+ */
+
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/source/blender/makesrna/RNA_enum_types.h b/source/blender/makesrna/RNA_enum_types.h
index d252d008d2f..cbf03c2c67d 100644
--- a/source/blender/makesrna/RNA_enum_types.h
+++ b/source/blender/makesrna/RNA_enum_types.h
@@ -100,6 +100,8 @@ extern EnumPropertyItem property_unit_items[];
extern EnumPropertyItem viewport_shade_items[];
+extern EnumPropertyItem node_socket_type_items[];
+
extern EnumPropertyItem node_blend_type_items[];
extern EnumPropertyItem node_math_items[];
extern EnumPropertyItem node_vec_math_items[];
diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h
index 6f7e524d7ca..7dccf65287a 100644
--- a/source/blender/makesrna/RNA_types.h
+++ b/source/blender/makesrna/RNA_types.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/SConscript b/source/blender/makesrna/SConscript
index 46b77ea7ec2..7d4e4667e3b 100644
--- a/source/blender/makesrna/SConscript
+++ b/source/blender/makesrna/SConscript
@@ -7,7 +7,7 @@ o = SConscript('intern/SConscript')
objs += o
incs = '#/intern/guardedalloc #/intern/memutil #/intern/audaspace/intern ../blenkernel ../blenlib ../makesdna intern .'
-incs += ' ../windowmanager ../editors/include ../gpu ../imbuf ../ikplugin ../blenfont'
+incs += ' ../windowmanager ../editors/include ../gpu ../imbuf ../ikplugin ../blenfont ../blenloader'
incs += ' ../render/extern/include'
incs += ' ../freestyle'
diff --git a/source/blender/makesrna/intern/CMakeLists.txt b/source/blender/makesrna/intern/CMakeLists.txt
index 94e924f203e..feec679b48e 100644
--- a/source/blender/makesrna/intern/CMakeLists.txt
+++ b/source/blender/makesrna/intern/CMakeLists.txt
@@ -41,6 +41,7 @@ set_source_files_properties(GENSRC PROPERTIES GENERATED true)
set(SRC_RNA_INC
../RNA_access.h
../RNA_define.h
+ ../RNA_documentation.h
../RNA_enum_types.h
../RNA_types.h
)
@@ -129,6 +130,7 @@ blender_include_dirs(
.
..
../../blenkernel
+ ../../blenloader
../../blenlib
../../blenfont
../../gpu
diff --git a/source/blender/makesrna/intern/SConscript b/source/blender/makesrna/intern/SConscript
index 5d49b626f54..cacbaccfc0e 100644
--- a/source/blender/makesrna/intern/SConscript
+++ b/source/blender/makesrna/intern/SConscript
@@ -29,7 +29,7 @@ makesrna_tool.Append(CCFLAGS = '-DBASE_HEADER="\\"source/blender/makesrna/\\"" '
defs = []
-incs = '#/intern/guardedalloc ../../blenlib ../../blenkernel'
+incs = '#/intern/guardedalloc ../../blenlib ../../blenkernel ../../blenloader'
incs += ' ../../imbuf ../../makesdna ../../makesrna ../../ikplugin'
incs += ' ../../windowmanager ../../editors/include ../../blenfont'
incs += ' ../../render/extern/include'
diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c
index c8797a172fa..eff93e576d4 100644
--- a/source/blender/makesrna/intern/rna_ID.c
+++ b/source/blender/makesrna/intern/rna_ID.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index f7f0cb191af..cbde3fe1398 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c
index 4a2ea760d87..0d02351f881 100644
--- a/source/blender/makesrna/intern/rna_action.c
+++ b/source/blender/makesrna/intern/rna_action.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_action_api.c b/source/blender/makesrna/intern/rna_action_api.c
index 9f64792932b..7c26b4d40fa 100644
--- a/source/blender/makesrna/intern/rna_action_api.c
+++ b/source/blender/makesrna/intern/rna_action_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c
index 80a5a5fbe4f..248d878e9e0 100644
--- a/source/blender/makesrna/intern/rna_actuator.c
+++ b/source/blender/makesrna/intern/rna_actuator.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_actuator_api.c b/source/blender/makesrna/intern/rna_actuator_api.c
index b61f9e252a6..e587b6f86e4 100644
--- a/source/blender/makesrna/intern/rna_actuator_api.c
+++ b/source/blender/makesrna/intern/rna_actuator_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c
index 680a230c1a6..0214def4d07 100644
--- a/source/blender/makesrna/intern/rna_animation.c
+++ b/source/blender/makesrna/intern/rna_animation.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_animation_api.c b/source/blender/makesrna/intern/rna_animation_api.c
index 1e62e10f211..6feb86ff45d 100644
--- a/source/blender/makesrna/intern/rna_animation_api.c
+++ b/source/blender/makesrna/intern/rna_animation_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_animviz.c b/source/blender/makesrna/intern/rna_animviz.c
index 1fcd53d5d0f..4498cc6ec86 100644
--- a/source/blender/makesrna/intern/rna_animviz.c
+++ b/source/blender/makesrna/intern/rna_animviz.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c
index 3dc52a5c4e2..a86a7bb2c18 100644
--- a/source/blender/makesrna/intern/rna_armature.c
+++ b/source/blender/makesrna/intern/rna_armature.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_armature_api.c b/source/blender/makesrna/intern/rna_armature_api.c
index a2b765e9959..00c0342ac3e 100644
--- a/source/blender/makesrna/intern/rna_armature_api.c
+++ b/source/blender/makesrna/intern/rna_armature_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
diff --git a/source/blender/makesrna/intern/rna_boid.c b/source/blender/makesrna/intern/rna_boid.c
index 757952bb956..1a7f7f99c8f 100644
--- a/source/blender/makesrna/intern/rna_boid.c
+++ b/source/blender/makesrna/intern/rna_boid.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_brush.c b/source/blender/makesrna/intern/rna_brush.c
index ce61a031ec7..3f8e38a99c6 100644
--- a/source/blender/makesrna/intern/rna_brush.c
+++ b/source/blender/makesrna/intern/rna_brush.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -493,6 +493,13 @@ static void rna_def_brush(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Plane Trim", "If a vertex is further from offset plane than this then it is not affected");
RNA_def_property_update(prop, 0, "rna_Brush_update");
+ prop= RNA_def_property(srna, "height", PROP_FLOAT, PROP_DISTANCE);
+ RNA_def_property_float_sdna(prop, NULL, "height");
+ RNA_def_property_float_default(prop, 0.5f);
+ RNA_def_property_range(prop, 0, 1.0f);
+ RNA_def_property_ui_text(prop, "Brush Height", "Affectable height of brush (layer height for layer tool, i.e.)");
+ RNA_def_property_update(prop, 0, "rna_Brush_update");
+
prop= RNA_def_property(srna, "texture_sample_bias", PROP_FLOAT, PROP_DISTANCE);
RNA_def_property_float_sdna(prop, NULL, "texture_sample_bias");
RNA_def_property_float_default(prop, 0);
diff --git a/source/blender/makesrna/intern/rna_camera.c b/source/blender/makesrna/intern/rna_camera.c
index b0d93bcd09a..ad5fdbe9aba 100644
--- a/source/blender/makesrna/intern/rna_camera.c
+++ b/source/blender/makesrna/intern/rna_camera.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_cloth.c b/source/blender/makesrna/intern/rna_cloth.c
index 2d2c9ab8a5b..ed40eb95620 100644
--- a/source/blender/makesrna/intern/rna_cloth.c
+++ b/source/blender/makesrna/intern/rna_cloth.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_color.c b/source/blender/makesrna/intern/rna_color.c
index d69a0352258..002bf08d663 100644
--- a/source/blender/makesrna/intern/rna_color.c
+++ b/source/blender/makesrna/intern/rna_color.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c
index 692ebb59240..3d516440731 100644
--- a/source/blender/makesrna/intern/rna_constraint.c
+++ b/source/blender/makesrna/intern/rna_constraint.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_context.c b/source/blender/makesrna/intern/rna_context.c
index ebe0e363b26..58081d13867 100644
--- a/source/blender/makesrna/intern/rna_context.c
+++ b/source/blender/makesrna/intern/rna_context.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_controller.c b/source/blender/makesrna/intern/rna_controller.c
index 73ac46e8e78..535476685cd 100644
--- a/source/blender/makesrna/intern/rna_controller.c
+++ b/source/blender/makesrna/intern/rna_controller.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_controller_api.c b/source/blender/makesrna/intern/rna_controller_api.c
index dab2ce8c3a1..c46a61fb1d8 100644
--- a/source/blender/makesrna/intern/rna_controller_api.c
+++ b/source/blender/makesrna/intern/rna_controller_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c
index f76994f31ea..e103da253dc 100644
--- a/source/blender/makesrna/intern/rna_curve.c
+++ b/source/blender/makesrna/intern/rna_curve.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c
index 975858099c5..97c7df253a1 100644
--- a/source/blender/makesrna/intern/rna_define.c
+++ b/source/blender/makesrna/intern/rna_define.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c
index 69e15482bbb..a4dee9eb345 100644
--- a/source/blender/makesrna/intern/rna_fcurve.c
+++ b/source/blender/makesrna/intern/rna_fcurve.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_fcurve_api.c b/source/blender/makesrna/intern/rna_fcurve_api.c
index 27deb242d73..12211f33966 100644
--- a/source/blender/makesrna/intern/rna_fcurve_api.c
+++ b/source/blender/makesrna/intern/rna_fcurve_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
diff --git a/source/blender/makesrna/intern/rna_fluidsim.c b/source/blender/makesrna/intern/rna_fluidsim.c
index 55045a927bc..525f402e5fd 100644
--- a/source/blender/makesrna/intern/rna_fluidsim.c
+++ b/source/blender/makesrna/intern/rna_fluidsim.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c
index a104ae9de5c..3b5c8f9e8a9 100644
--- a/source/blender/makesrna/intern/rna_gpencil.c
+++ b/source/blender/makesrna/intern/rna_gpencil.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_group.c b/source/blender/makesrna/intern/rna_group.c
index bd1b7c96998..ebe6bdd5872 100644
--- a/source/blender/makesrna/intern/rna_group.c
+++ b/source/blender/makesrna/intern/rna_group.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_image.c b/source/blender/makesrna/intern/rna_image.c
index cc3c25fdb0e..96d85cda5e7 100644
--- a/source/blender/makesrna/intern/rna_image.c
+++ b/source/blender/makesrna/intern/rna_image.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_image_api.c b/source/blender/makesrna/intern/rna_image_api.c
index 836faf1e9a9..8431b223d30 100644
--- a/source/blender/makesrna/intern/rna_image_api.c
+++ b/source/blender/makesrna/intern/rna_image_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_internal_types.h b/source/blender/makesrna/intern/rna_internal_types.h
index c31c473512a..35a80fdec79 100644
--- a/source/blender/makesrna/intern/rna_internal_types.h
+++ b/source/blender/makesrna/intern/rna_internal_types.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_key.c b/source/blender/makesrna/intern/rna_key.c
index beceb66986d..464d1d850a1 100644
--- a/source/blender/makesrna/intern/rna_key.c
+++ b/source/blender/makesrna/intern/rna_key.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_lamp.c b/source/blender/makesrna/intern/rna_lamp.c
index f2dc0decf29..63857fad62d 100644
--- a/source/blender/makesrna/intern/rna_lamp.c
+++ b/source/blender/makesrna/intern/rna_lamp.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_lattice.c b/source/blender/makesrna/intern/rna_lattice.c
index de09d9605cd..5d5480e3761 100644
--- a/source/blender/makesrna/intern/rna_lattice.c
+++ b/source/blender/makesrna/intern/rna_lattice.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_main.c b/source/blender/makesrna/intern/rna_main.c
index 0dc04ed214a..db48ac23101 100644
--- a/source/blender/makesrna/intern/rna_main.c
+++ b/source/blender/makesrna/intern/rna_main.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c
index 3b1cf8bef23..0bfe1c1de0b 100644
--- a/source/blender/makesrna/intern/rna_main_api.c
+++ b/source/blender/makesrna/intern/rna_main_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -206,7 +206,7 @@ struct bNodeTree *rna_Main_nodetree_new(Main *bmain, const char *name, int type)
{
bNodeTree *tree = ntreeAddTree(name, type, TRUE);
- ntreeMakeOwnType(tree);
+// ntreeMakeGroupSockets(tree);
id_us_min(&tree->id);
return tree;
@@ -395,7 +395,7 @@ Group *rna_Main_groups_new(Main *bmain, const char *name)
{
return add_group(name);
}
-void rna_Main_groups_remove(Main *bmain, ReportList *reports, Group *group)
+void rna_Main_groups_remove(Main *bmain, Group *group)
{
unlink_group(group);
free_libblock(&bmain->group, group);
@@ -406,7 +406,7 @@ Text *rna_Main_texts_new(Main *bmain, const char *name)
{
return add_empty_text(name);
}
-void rna_Main_texts_remove(Main *bmain, ReportList *reports, Text *text)
+void rna_Main_texts_remove(Main *bmain, Text *text)
{
unlink_text(bmain, text);
free_libblock(&bmain->text, text);
@@ -1062,7 +1062,6 @@ void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_function_return(func, parm);
func= RNA_def_function(srna, "remove", "rna_Main_groups_remove");
- RNA_def_function_flag(func, FUNC_USE_REPORTS);
RNA_def_function_ui_description(func, "Remove a group from the current blendfile.");
parm= RNA_def_pointer(func, "group", "Group", "", "Group to remove.");
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
@@ -1090,7 +1089,6 @@ void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_function_return(func, parm);
func= RNA_def_function(srna, "remove", "rna_Main_texts_remove");
- RNA_def_function_flag(func, FUNC_USE_REPORTS);
RNA_def_function_ui_description(func, "Remove a text from the current blendfile.");
parm= RNA_def_pointer(func, "text", "Text", "", "Text to remove.");
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c
index 0c7a300d942..7732e9157bd 100644
--- a/source/blender/makesrna/intern/rna_material.c
+++ b/source/blender/makesrna/intern/rna_material.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_material_api.c b/source/blender/makesrna/intern/rna_material_api.c
index 22eb537f24a..063f87caa3a 100644
--- a/source/blender/makesrna/intern/rna_material_api.c
+++ b/source/blender/makesrna/intern/rna_material_api.c
@@ -1,4 +1,4 @@
-/**
+/*
*
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c
index 6760000c702..e0bf025f9dc 100644
--- a/source/blender/makesrna/intern/rna_mesh.c
+++ b/source/blender/makesrna/intern/rna_mesh.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_mesh_api.c b/source/blender/makesrna/intern/rna_mesh_api.c
index 3090f8512e0..ed28e648507 100644
--- a/source/blender/makesrna/intern/rna_mesh_api.c
+++ b/source/blender/makesrna/intern/rna_mesh_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_meta.c b/source/blender/makesrna/intern/rna_meta.c
index 142c8017289..e575ecabac9 100644
--- a/source/blender/makesrna/intern/rna_meta.c
+++ b/source/blender/makesrna/intern/rna_meta.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index faadc80afb2..3c77ab63821 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -1720,9 +1720,9 @@ static void rna_def_modifier_explode(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Protect", "Clean vertex group edges");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
- prop= RNA_def_property(srna, "use_edge_split", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "flag", eExplodeFlag_EdgeSplit);
- RNA_def_property_ui_text(prop, "Split Edges", "Split face edges for nicer shrapnel");
+ prop= RNA_def_property(srna, "use_edge_cut", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", eExplodeFlag_EdgeCut);
+ RNA_def_property_ui_text(prop, "Cut Edges", "Cut face edges for nicer shrapnel");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
prop= RNA_def_property(srna, "show_unborn", PROP_BOOLEAN, PROP_NONE);
@@ -1744,6 +1744,12 @@ static void rna_def_modifier_explode(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "flag", eExplodeFlag_PaSize);
RNA_def_property_ui_text(prop, "Size", "Use particle size for the shrapnel");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop= RNA_def_property(srna, "particle_uv", PROP_STRING, PROP_NONE);
+ RNA_def_property_string_sdna(prop, NULL, "uvname");
+ RNA_def_property_string_maxlength(prop, 32);
+ RNA_def_property_ui_text(prop, "Particle UV", "UV Layer to change with particle age");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
}
static void rna_def_modifier_cloth(BlenderRNA *brna)
diff --git a/source/blender/makesrna/intern/rna_nla.c b/source/blender/makesrna/intern/rna_nla.c
index f28fec75fe2..0bf8ba7a56c 100644
--- a/source/blender/makesrna/intern/rna_nla.c
+++ b/source/blender/makesrna/intern/rna_nla.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -317,9 +317,14 @@ static NlaStrip *rna_NlaStrip_new(NlaTrack *track, bContext *C, ReportList *repo
static void rna_NlaStrip_remove(NlaTrack *track, bContext *C, ReportList *reports, NlaStrip *strip)
{
- free_nlastrip(&track->strips, strip);
-
- WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_REMOVED, NULL);
+ if(BLI_findindex(&track->strips, strip) == -1) {
+ BKE_reportf(reports, RPT_ERROR, "NLA's Strip '%s' not found in track '%s'", strip->name, track->name);
+ return;
+ }
+ else {
+ free_nlastrip(&track->strips, strip);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_REMOVED, NULL);
+ }
}
#else
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 98739874db8..a526f360355 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -47,6 +47,13 @@
#include "MEM_guardedalloc.h"
+
+EnumPropertyItem node_socket_type_items[] = {
+ {SOCK_VALUE, "VALUE", 0, "Value", ""},
+ {SOCK_VECTOR, "VECTOR", 0, "Vector", ""},
+ {SOCK_RGBA, "RGBA", 0, "RGBA", ""},
+ {0, NULL, 0, NULL, NULL}};
+
EnumPropertyItem node_blend_type_items[] = {
{ 0, "MIX", 0, "Mix", ""},
{ 1, "ADD", 0, "Add", ""},
@@ -185,12 +192,22 @@ static char *rna_NodeSocket_path(PointerRNA *ptr)
bNode *node;
int socketindex;
- if (!nodeFindNode(ntree, sock, &node, NULL)) return NULL;
-
+ /* group sockets */
+ socketindex = BLI_findindex(&ntree->inputs, sock);
+ if (socketindex != -1)
+ return BLI_sprintfN("inputs[%d]", socketindex);
+
+ socketindex = BLI_findindex(&ntree->outputs, sock);
+ if (socketindex != -1)
+ return BLI_sprintfN("outputs[%d]", socketindex);
+
+ /* node sockets */
+ if (!nodeFindNode(ntree, sock, &node, NULL, NULL)) return NULL;
+
socketindex = BLI_findindex(&node->inputs, sock);
if (socketindex != -1)
return BLI_sprintfN("nodes[\"%s\"].inputs[%d]", node->name, socketindex);
-
+
socketindex = BLI_findindex(&node->outputs, sock);
if (socketindex != -1)
return BLI_sprintfN("nodes[\"%s\"].outputs[%d]", node->name, socketindex);
@@ -273,7 +290,7 @@ static void rna_NodeGroup_update(Main *bmain, Scene *scene, PointerRNA *ptr)
bNodeTree *ntree= (bNodeTree*)ptr->id.data;
bNode *node= (bNode*)ptr->data;
- nodeVerifyGroup((bNodeTree *)node->id);
+ nodeGroupVerify((bNodeTree *)node->id);
node_update(bmain, scene, ntree, node);
}
@@ -350,7 +367,19 @@ static void rna_NodeSocket_update(Main *bmain, Scene *scene, PointerRNA *ptr)
bNodeSocket *sock= (bNodeSocket*)ptr->data;
bNode *node;
- if (nodeFindNode(ntree, sock, &node, NULL))
+ if (nodeFindNode(ntree, sock, &node, NULL, NULL))
+ node_update(bmain, scene, ntree, node);
+}
+
+static void rna_NodeGroupSocket_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+{
+ bNodeTree *ntree= (bNodeTree*)ptr->id.data;
+ bNodeSocket *sock= (bNodeSocket*)ptr->data;
+ bNode *node;
+
+ nodeGroupVerify(ntree);
+
+ if (nodeFindNode(ntree, sock, &node, NULL, NULL))
node_update(bmain, scene, ntree, node);
}
@@ -500,7 +529,7 @@ static bNode *rna_NodeTree_node_new(bNodeTree *ntree, bContext *C, ReportList *r
BKE_reportf(reports, RPT_ERROR, "Unable to create node");
}
else {
- nodeVerifyGroup(ntree); /* update group node socket links*/
+ nodeGroupVerify(ntree); /* update group node socket links*/
NodeTagChanged(ntree, node);
WM_main_add_notifier(NC_NODE|NA_EDITED, ntree);
@@ -558,7 +587,7 @@ static void rna_NodeTree_node_remove(bNodeTree *ntree, ReportList *reports, bNod
id_us_min(node->id);
nodeFreeNode(ntree, node);
- nodeVerifyGroup(ntree); /* update group node socket links*/
+ nodeGroupVerify(ntree); /* update group node socket links*/
WM_main_add_notifier(NC_NODE|NA_EDITED, ntree);
}
@@ -569,12 +598,12 @@ static bNodeLink *rna_NodeTree_link_new(bNodeTree *ntree, ReportList *reports, b
bNodeLink *ret;
bNode *fromnode, *tonode;
- if (!nodeFindNode(ntree, in, &fromnode, NULL)) {
+ if (!nodeFindNode(ntree, in, &fromnode, NULL, NULL)) {
BKE_reportf(reports, RPT_ERROR, "Unable to locate input socket's node in nodetree");
return NULL;
}
- if (!nodeFindNode(ntree, out, &tonode, NULL)) {
+ if (!nodeFindNode(ntree, out, &tonode, NULL, NULL)) {
BKE_reportf(reports, RPT_ERROR, "Unable to locate output socket's node in nodetree");
return NULL;
}
@@ -587,7 +616,7 @@ static bNodeLink *rna_NodeTree_link_new(bNodeTree *ntree, ReportList *reports, b
if(ret) {
NodeTagChanged(ntree, tonode);
- nodeVerifyGroup(ntree); /* update group node socket links*/
+ nodeGroupVerify(ntree); /* update group node socket links*/
ntreeSolveOrder(ntree);
@@ -604,12 +633,78 @@ static void rna_NodeTree_link_remove(bNodeTree *ntree, ReportList *reports, bNod
else {
nodeRemLink(ntree, link);
ntreeSolveOrder(ntree);
- nodeVerifyGroup(ntree); /* update group node socket links*/
+ nodeGroupVerify(ntree); /* update group node socket links*/
WM_main_add_notifier(NC_NODE|NA_EDITED, ntree);
}
}
+static bNodeSocket *rna_NodeTree_input_new(bNodeTree *ntree, ReportList *UNUSED(reports), const char *name, int type)
+{
+ /* XXX should check if tree is a group here! no good way to do this currently. */
+ bNodeSocket *gsock= nodeGroupAddSocket(ntree, name, type, SOCK_IN);
+
+ nodeGroupVerify(ntree); /* update group node socket links*/
+ WM_main_add_notifier(NC_NODE|NA_EDITED, ntree);
+ return gsock;
+}
+
+static bNodeSocket *rna_NodeTree_output_new(bNodeTree *ntree, ReportList *UNUSED(reports), const char *name, int type)
+{
+ /* XXX should check if tree is a group here! no good way to do this currently. */
+ bNodeSocket *gsock= nodeGroupAddSocket(ntree, name, type, SOCK_OUT);
+
+ nodeGroupVerify(ntree); /* update group node socket links*/
+ WM_main_add_notifier(NC_NODE|NA_EDITED, ntree);
+ return gsock;
+}
+
+static bNodeSocket *rna_NodeTree_input_expose(bNodeTree *ntree, ReportList *reports, bNodeSocket *sock, int add_link)
+{
+ bNode *node;
+ bNodeSocket *gsock;
+ int index, in_out;
+
+ if (!nodeFindNode(ntree, sock, &node, &index, &in_out))
+ BKE_reportf(reports, RPT_ERROR, "Unable to locate socket in nodetree");
+ else if (in_out!=SOCK_IN)
+ BKE_reportf(reports, RPT_ERROR, "Socket is not an input");
+ else {
+ /* XXX should check if tree is a group here! no good way to do this currently. */
+ gsock = nodeGroupAddSocket(ntree, sock->name, sock->type, SOCK_IN);
+ if (add_link)
+ nodeAddLink(ntree, NULL, gsock, node, sock);
+
+ nodeGroupVerify(ntree); /* update group node socket links*/
+ WM_main_add_notifier(NC_NODE|NA_EDITED, ntree);
+ return gsock;
+ }
+ return NULL;
+}
+
+static bNodeSocket *rna_NodeTree_output_expose(bNodeTree *ntree, ReportList *reports, bNodeSocket *sock, int add_link)
+{
+ bNode *node;
+ bNodeSocket *gsock;
+ int index, in_out;
+
+ if (!nodeFindNode(ntree, sock, &node, &index, &in_out))
+ BKE_reportf(reports, RPT_ERROR, "Unable to locate socket in nodetree");
+ else if (in_out!=SOCK_OUT)
+ BKE_reportf(reports, RPT_ERROR, "Socket is not an output");
+ else {
+ /* XXX should check if tree is a group here! no good way to do this currently. */
+ gsock = nodeGroupAddSocket(ntree, sock->name, sock->type, SOCK_OUT);
+ if (add_link)
+ nodeAddLink(ntree, node, sock, NULL, gsock);
+
+ nodeGroupVerify(ntree); /* update group node socket links*/
+ WM_main_add_notifier(NC_NODE|NA_EDITED, ntree);
+ return gsock;
+ }
+ return NULL;
+}
+
#else
static EnumPropertyItem prop_image_layer_items[] = {
@@ -2473,12 +2568,6 @@ static void rna_def_node_socket(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
- static EnumPropertyItem node_socket_type_items[] = {
- {SOCK_VALUE, "VALUE", 0, "Value", ""},
- {SOCK_VECTOR, "VECTOR", 0, "Vector", ""},
- {SOCK_RGBA, "RGBA", 0, "RGBA", ""},
- {0, NULL, 0, NULL, NULL}};
-
srna = RNA_def_struct(brna, "NodeSocket", NULL);
RNA_def_struct_ui_text(srna, "Node Socket", "Input or output socket of a node");
RNA_def_struct_refine_func(srna, "rna_NodeSocketType_refine");
@@ -2487,9 +2576,11 @@ static void rna_def_node_socket(BlenderRNA *brna)
RNA_def_struct_path_func(srna, "rna_NodeSocket_path");
prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
- RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ /* XXX must be editable for group sockets. if necessary use a special rna definition for these */
+// RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_ui_text(prop, "Name", "Socket name");
RNA_def_struct_name_property(srna, prop);
+ RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_NodeGroupSocket_update");
/* can add back if there is any use in reading them */
#if 0
@@ -2636,12 +2727,41 @@ static void rna_def_node_link(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "To socket", "");
}
+static void rna_def_group_sockets_api(BlenderRNA *brna, PropertyRNA *cprop, int in_out)
+{
+ StructRNA *srna;
+ PropertyRNA *parm;
+ FunctionRNA *func;
+
+ RNA_def_property_srna(cprop, (in_out==SOCK_IN ? "GroupInputs" : "GroupOutputs"));
+ srna= RNA_def_struct(brna, (in_out==SOCK_IN ? "GroupInputs" : "GroupOutputs"), NULL);
+ RNA_def_struct_sdna(srna, "bNodeTree");
+ RNA_def_struct_ui_text(srna, "Group Sockets", "Collection of group sockets");
+
+ func= RNA_def_function(srna, "new", (in_out==SOCK_IN ? "rna_NodeTree_input_new" : "rna_NodeTree_output_new"));
+ RNA_def_function_ui_description(func, "Add a socket to the group tree.");
+ RNA_def_function_flag(func, FUNC_USE_REPORTS);
+ RNA_def_string(func, "name", "Socket", 32, "Name", "Name of the socket");
+ RNA_def_enum(func, "type", node_socket_type_items, SOCK_VALUE, "Type", "Type of socket");
+ /* return value */
+ parm= RNA_def_pointer(func, "socket", "NodeSocket", "", "New socket.");
+ RNA_def_function_return(func, parm);
+
+ func= RNA_def_function(srna, "expose", (in_out==SOCK_IN ? "rna_NodeTree_input_expose" : "rna_NodeTree_output_expose"));
+ RNA_def_function_ui_description(func, "Expose an internal socket in the group tree.");
+ RNA_def_function_flag(func, FUNC_USE_REPORTS);
+ RNA_def_pointer(func, "sock", "NodeSocket", "Socket", "Internal node socket to expose");
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+ RNA_def_boolean(func, "add_link", TRUE, "Add Link", "If TRUE, adds a link to the internal socket");
+ /* return value */
+ parm= RNA_def_pointer(func, "socket", "NodeSocket", "", "New socket.");
+ RNA_def_function_return(func, parm);
+}
+
static void rna_def_nodetree(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
- /* FunctionRNA *func; */
- /* PropertyRNA *parm; */
static EnumPropertyItem nodetree_type_items[] = {
{NTREE_SHADER, "SHADER", 0, "Shader", ""},
@@ -2671,29 +2791,24 @@ static void rna_def_nodetree(BlenderRNA *brna)
RNA_def_property_flag(prop, PROP_EDITABLE);
RNA_def_property_struct_type(prop, "GreasePencil");
RNA_def_property_ui_text(prop, "Grease Pencil Data", "Grease Pencil datablock");
-
- /* these are too much like operators, better to have data level access
- * ngroup = bpy.data.node_groups.new()
- * ngroup.nodes.new(....) etc. */
-#if 0
- func= RNA_def_function(srna, "group_add", "nodeMakeGroupFromSelected");
- RNA_def_function_ui_description(func, "Make a group from the active nodes.");
- /* return */
- parm= RNA_def_pointer(func, "group", "Node", "", "New group.");
- RNA_def_function_return(func, parm);
-
- func= RNA_def_function(srna, "ungroup", "nodeGroupUnGroup");
- RNA_def_function_ui_description(func, "Ungroup node group");
- parm= RNA_def_pointer(func, "group", "Node", "", "The group to ungroup.");
- RNA_def_property_flag(parm, PROP_REQUIRED);
- parm= RNA_def_int(func, "bool", 0, 0, 1, "Bool", "", 0, 1);
- RNA_def_function_return(func, parm);
-#endif
prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_enum_items(prop, nodetree_type_items);
RNA_def_property_ui_text(prop, "Type", "Node Tree type");
+
+ /* group sockets */
+ prop = RNA_def_property(srna, "inputs", PROP_COLLECTION, PROP_NONE);
+ RNA_def_property_collection_sdna(prop, NULL, "inputs", NULL);
+ RNA_def_property_struct_type(prop, "NodeSocket");
+ RNA_def_property_ui_text(prop, "Inputs", "");
+ rna_def_group_sockets_api(brna, prop, SOCK_IN);
+
+ prop = RNA_def_property(srna, "outputs", PROP_COLLECTION, PROP_NONE);
+ RNA_def_property_collection_sdna(prop, NULL, "outputs", NULL);
+ RNA_def_property_struct_type(prop, "NodeSocket");
+ RNA_def_property_ui_text(prop, "Outputs", "");
+ rna_def_group_sockets_api(brna, prop, SOCK_OUT);
}
static void rna_def_composite_nodetree(BlenderRNA *brna)
diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h
index e74680280f8..0dd622924fc 100644
--- a/source/blender/makesrna/intern/rna_nodetree_types.h
+++ b/source/blender/makesrna/intern/rna_nodetree_types.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index 85cc3a2eea9..2784a904753 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c
index 9f1ef7396c0..f2e12c91c49 100644
--- a/source/blender/makesrna/intern/rna_object_api.c
+++ b/source/blender/makesrna/intern/rna_object_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -302,7 +302,7 @@ static void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *
/* ob->duplilist should now be freed with Object.free_duplilist */
}
-static void rna_Object_free_duplilist(Object *ob, ReportList *reports)
+static void rna_Object_free_duplilist(Object *ob)
{
if (ob->duplilist) {
free_object_duplilist(ob->duplilist);
@@ -444,14 +444,13 @@ void RNA_api_object(StructRNA *srna)
/* duplis */
func= RNA_def_function(srna, "create_dupli_list", "rna_Object_create_duplilist");
- RNA_def_function_ui_description(func, "Create a list of dupli objects for this object, needs to be freed manually with free_dupli_list.");
+ RNA_def_function_ui_description(func, "Create a list of dupli objects for this object, needs to be freed manually with free_dupli_list to restore the objects real matrix and layers.");
parm= RNA_def_pointer(func, "scene", "Scene", "", "Scene within which to evaluate duplis.");
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
RNA_def_function_flag(func, FUNC_USE_REPORTS);
func= RNA_def_function(srna, "free_dupli_list", "rna_Object_free_duplilist");
RNA_def_function_ui_description(func, "Free the list of dupli objects.");
- RNA_def_function_flag(func, FUNC_USE_REPORTS);
/* Armature */
func= RNA_def_function(srna, "find_armature", "modifiers_isDeformedByArmature");
diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c
index e0809510751..fe69fefa879 100644
--- a/source/blender/makesrna/intern/rna_object_force.c
+++ b/source/blender/makesrna/intern/rna_object_force.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_packedfile.c b/source/blender/makesrna/intern/rna_packedfile.c
index 41c4d9b2769..2effc616e53 100644
--- a/source/blender/makesrna/intern/rna_packedfile.c
+++ b/source/blender/makesrna/intern/rna_packedfile.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c
index c1514e2f32e..2a4e018b741 100644
--- a/source/blender/makesrna/intern/rna_particle.c
+++ b/source/blender/makesrna/intern/rna_particle.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c
index 709945c7891..e6aa753147a 100644
--- a/source/blender/makesrna/intern/rna_pose.c
+++ b/source/blender/makesrna/intern/rna_pose.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_pose_api.c b/source/blender/makesrna/intern/rna_pose_api.c
index 4560fa426f1..667335e99e6 100644
--- a/source/blender/makesrna/intern/rna_pose_api.c
+++ b/source/blender/makesrna/intern/rna_pose_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_property.c b/source/blender/makesrna/intern/rna_property.c
index b7ae1229c4a..4ea54994561 100644
--- a/source/blender/makesrna/intern/rna_property.c
+++ b/source/blender/makesrna/intern/rna_property.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c
index b889d0082f8..1d8c335e88f 100644
--- a/source/blender/makesrna/intern/rna_render.c
+++ b/source/blender/makesrna/intern/rna_render.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c
index 84d2dce7669..4402f0a3665 100644
--- a/source/blender/makesrna/intern/rna_rna.c
+++ b/source/blender/makesrna/intern/rna_rna.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 1b1a5400a8e..453a8886e25 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -2474,6 +2474,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
prop= RNA_def_property(srna, "resolution_percentage", PROP_INT, PROP_PERCENTAGE);
RNA_def_property_int_sdna(prop, NULL, "size");
+ RNA_def_property_range(prop, 1, INT_MAX);
RNA_def_property_ui_range(prop, 1, 100, 10, 1);
RNA_def_property_ui_text(prop, "Resolution %", "Percentage scale for render resolution");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
diff --git a/source/blender/makesrna/intern/rna_scene_api.c b/source/blender/makesrna/intern/rna_scene_api.c
index 31297d8a478..042d3214edf 100644
--- a/source/blender/makesrna/intern/rna_scene_api.c
+++ b/source/blender/makesrna/intern/rna_scene_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c
index 02eadbcdaad..892090b7f38 100644
--- a/source/blender/makesrna/intern/rna_screen.c
+++ b/source/blender/makesrna/intern/rna_screen.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c
index 040c2175d07..a4face4de74 100644
--- a/source/blender/makesrna/intern/rna_sculpt_paint.c
+++ b/source/blender/makesrna/intern/rna_sculpt_paint.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_sensor.c b/source/blender/makesrna/intern/rna_sensor.c
index e0a9c17193c..f4d732ee041 100644
--- a/source/blender/makesrna/intern/rna_sensor.c
+++ b/source/blender/makesrna/intern/rna_sensor.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_sensor_api.c b/source/blender/makesrna/intern/rna_sensor_api.c
index afdb71b4f3b..5bf0e00f05d 100644
--- a/source/blender/makesrna/intern/rna_sensor_api.c
+++ b/source/blender/makesrna/intern/rna_sensor_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c
index d3d36bff012..dae4b484aef 100644
--- a/source/blender/makesrna/intern/rna_sequencer.c
+++ b/source/blender/makesrna/intern/rna_sequencer.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_sequencer_api.c b/source/blender/makesrna/intern/rna_sequencer_api.c
index 245a36d9573..614e3d7b031 100644
--- a/source/blender/makesrna/intern/rna_sequencer_api.c
+++ b/source/blender/makesrna/intern/rna_sequencer_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_smoke.c b/source/blender/makesrna/intern/rna_smoke.c
index fc1584c7a0f..f0d5600ac06 100644
--- a/source/blender/makesrna/intern/rna_smoke.c
+++ b/source/blender/makesrna/intern/rna_smoke.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_sound.c b/source/blender/makesrna/intern/rna_sound.c
index 674fbbad9c6..dc30f0f09b4 100644
--- a/source/blender/makesrna/intern/rna_sound.c
+++ b/source/blender/makesrna/intern/rna_sound.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 70c0b70e326..c6ed60c90f7 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -1403,7 +1403,7 @@ static void rna_def_space_buttons(BlenderRNA *brna)
RNA_def_property_enum_items(prop, buttons_texture_context_items);
RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_SpaceProperties_texture_context_itemf");
RNA_def_property_ui_text(prop, "Texture Context", "Type of texture data to display and edit");
- RNA_def_property_update(prop, NC_SPACE|ND_SPACE_PROPERTIES, NULL);
+ RNA_def_property_update(prop, NC_TEXTURE, NULL);
/* pinned data */
prop= RNA_def_property(srna, "pin_id", PROP_POINTER, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_test.c b/source/blender/makesrna/intern/rna_test.c
index 592d88c718a..ba5fdfcc5cf 100644
--- a/source/blender/makesrna/intern/rna_test.c
+++ b/source/blender/makesrna/intern/rna_test.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_text.c b/source/blender/makesrna/intern/rna_text.c
index 66046939350..ec71dd0f2d6 100644
--- a/source/blender/makesrna/intern/rna_text.c
+++ b/source/blender/makesrna/intern/rna_text.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_text_api.c b/source/blender/makesrna/intern/rna_text_api.c
index 2534eb63f2b..9d884eaa257 100644
--- a/source/blender/makesrna/intern/rna_text_api.c
+++ b/source/blender/makesrna/intern/rna_text_api.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c
index 9f6014fdbc2..23a98804771 100644
--- a/source/blender/makesrna/intern/rna_texture.c
+++ b/source/blender/makesrna/intern/rna_texture.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_timeline.c b/source/blender/makesrna/intern/rna_timeline.c
index a436c746910..edff898b8db 100644
--- a/source/blender/makesrna/intern/rna_timeline.c
+++ b/source/blender/makesrna/intern/rna_timeline.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_ui.c b/source/blender/makesrna/intern/rna_ui.c
index fc9bbbfb76c..d6117c393a5 100644
--- a/source/blender/makesrna/intern/rna_ui.c
+++ b/source/blender/makesrna/intern/rna_ui.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c
index 7c3d0cc9a01..d7ff6af9bb2 100644
--- a/source/blender/makesrna/intern/rna_ui_api.c
+++ b/source/blender/makesrna/intern/rna_ui_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index 7959d139833..76300496108 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_vfont.c b/source/blender/makesrna/intern/rna_vfont.c
index 41387e806b9..f6b39f648c4 100644
--- a/source/blender/makesrna/intern/rna_vfont.c
+++ b/source/blender/makesrna/intern/rna_vfont.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c
index fd328a1545b..54d1b1a55b4 100644
--- a/source/blender/makesrna/intern/rna_wm.c
+++ b/source/blender/makesrna/intern/rna_wm.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c
index 87ef0d61410..2c332beed0e 100644
--- a/source/blender/makesrna/intern/rna_wm_api.c
+++ b/source/blender/makesrna/intern/rna_wm_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/makesrna/intern/rna_world.c b/source/blender/makesrna/intern/rna_world.c
index 1358964a92b..2de7e0e206f 100644
--- a/source/blender/makesrna/intern/rna_world.c
+++ b/source/blender/makesrna/intern/rna_world.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/modifiers/CMakeLists.txt b/source/blender/modifiers/CMakeLists.txt
index 787c93f5b8a..c610a2fbdda 100644
--- a/source/blender/modifiers/CMakeLists.txt
+++ b/source/blender/modifiers/CMakeLists.txt
@@ -27,6 +27,7 @@
set(INC
. ./intern
../blenlib
+ ../blenloader
../makesdna
../blenkernel
../blenkernel/intern
diff --git a/source/blender/modifiers/MOD_modifiertypes.h b/source/blender/modifiers/MOD_modifiertypes.h
index 6063acf47f4..8486e2b5d29 100644
--- a/source/blender/modifiers/MOD_modifiertypes.h
+++ b/source/blender/modifiers/MOD_modifiertypes.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file MOD_modifiertypes.h
+ * \ingroup modifiers
+ */
+
#ifndef MOD_MODIFIERTYPES_H
#define MOD_MODIFIERTYPES_H
diff --git a/source/blender/modifiers/SConscript b/source/blender/modifiers/SConscript
index 8ea4f893bb9..d1bb95761ff 100644
--- a/source/blender/modifiers/SConscript
+++ b/source/blender/modifiers/SConscript
@@ -5,7 +5,7 @@ sources = env.Glob('intern/*.c')
incs = '. ./intern'
incs += ' #/intern/guardedalloc #/intern/decimation/extern #/intern/bsp/extern #/intern/elbeem/extern'
-incs += ' ../render/extern/include'
+incs += ' ../render/extern/include ../blenloader'
incs += ' ../include ../blenlib ../makesdna ../blenkernel ../blenkernel/intern'
incs += ' ' + env['BF_ZLIB_INC']
diff --git a/source/blender/modifiers/intern/MOD_armature.c b/source/blender/modifiers/intern/MOD_armature.c
index ac25987871d..fa39c197c7b 100644
--- a/source/blender/modifiers/intern/MOD_armature.c
+++ b/source/blender/modifiers/intern/MOD_armature.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_armature.c
+ * \ingroup modifiers
+ */
+
+
#include <string.h>
#include "DNA_armature_types.h"
diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c
index 6c729c8519f..0a8caee5241 100644
--- a/source/blender/modifiers/intern/MOD_array.c
+++ b/source/blender/modifiers/intern/MOD_array.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_array.c
+ * \ingroup modifiers
+ */
+
+
/* Array modifier: duplicates the object multiple times along an axis */
#include "MEM_guardedalloc.h"
diff --git a/source/blender/modifiers/intern/MOD_bevel.c b/source/blender/modifiers/intern/MOD_bevel.c
index 09e5016cb2b..a1bd3abc176 100644
--- a/source/blender/modifiers/intern/MOD_bevel.c
+++ b/source/blender/modifiers/intern/MOD_bevel.c
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*
*/
+
+/** \file blender/modifiers/intern/MOD_bevel.c
+ * \ingroup modifiers
+ */
+
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
diff --git a/source/blender/modifiers/intern/MOD_boolean.c b/source/blender/modifiers/intern/MOD_boolean.c
index 3aa5bff5f61..d4be9d3d03a 100644
--- a/source/blender/modifiers/intern/MOD_boolean.c
+++ b/source/blender/modifiers/intern/MOD_boolean.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_boolean.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_object_types.h"
#include "BLI_utildefines.h"
diff --git a/source/blender/modifiers/intern/MOD_boolean_util.c b/source/blender/modifiers/intern/MOD_boolean_util.c
index 8cd032a48c4..9d83e351b2b 100644
--- a/source/blender/modifiers/intern/MOD_boolean_util.c
+++ b/source/blender/modifiers/intern/MOD_boolean_util.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* CSG operations.
*/
+/** \file blender/modifiers/intern/MOD_boolean_util.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
diff --git a/source/blender/modifiers/intern/MOD_boolean_util.h b/source/blender/modifiers/intern/MOD_boolean_util.h
index e415b368a85..2a4191de407 100644
--- a/source/blender/modifiers/intern/MOD_boolean_util.h
+++ b/source/blender/modifiers/intern/MOD_boolean_util.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/modifiers/intern/MOD_boolean_util.h
+ * \ingroup modifiers
+ */
+
+
#ifndef MOD_BOOLEAN_UTILS_H
#define MOD_BOOLEAN_UTILS_H
diff --git a/source/blender/modifiers/intern/MOD_build.c b/source/blender/modifiers/intern/MOD_build.c
index 3bf1fa401f9..0d04476c618 100644
--- a/source/blender/modifiers/intern/MOD_build.c
+++ b/source/blender/modifiers/intern/MOD_build.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_build.c
+ * \ingroup modifiers
+ */
+
+
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
@@ -82,7 +87,6 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
BuildModifierData *bmd = (BuildModifierData*) md;
int i;
int numFaces, numEdges;
- int maxVerts, maxEdges, maxFaces;
int *vertMap, *edgeMap, *faceMap;
float frac;
GHashIterator *hashIter;
@@ -93,19 +97,15 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
GHash *edgeHash = BLI_ghash_new(BLI_ghashutil_inthash,
BLI_ghashutil_intcmp, "build ed apply gh");
- maxVerts = dm->getNumVerts(dm);
- vertMap = MEM_callocN(sizeof(*vertMap) * maxVerts,
- "build modifier vertMap");
- for(i = 0; i < maxVerts; ++i) vertMap[i] = i;
+ const int maxVerts= dm->getNumVerts(dm);
+ const int maxEdges= dm->getNumEdges(dm);
+ const int maxFaces= dm->getNumFaces(dm);
- maxEdges = dm->getNumEdges(dm);
- edgeMap = MEM_callocN(sizeof(*edgeMap) * maxEdges,
- "build modifier edgeMap");
+ vertMap = MEM_callocN(sizeof(*vertMap) * maxVerts, "build modifier vertMap");
+ for(i = 0; i < maxVerts; ++i) vertMap[i] = i;
+ edgeMap = MEM_callocN(sizeof(*edgeMap) * maxEdges, "build modifier edgeMap");
for(i = 0; i < maxEdges; ++i) edgeMap[i] = i;
-
- maxFaces = dm->getNumFaces(dm);
- faceMap = MEM_callocN(sizeof(*faceMap) * maxFaces,
- "build modifier faceMap");
+ faceMap = MEM_callocN(sizeof(*faceMap) * maxFaces, "build modifier faceMap");
for(i = 0; i < maxFaces; ++i) faceMap[i] = i;
if (ob) {
@@ -121,8 +121,6 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
/* if there's at least one face, build based on faces */
if(numFaces) {
- int maxEdges;
-
if(bmd->randomize)
BLI_array_randomize(faceMap, sizeof(*faceMap),
maxFaces, bmd->seed);
@@ -151,7 +149,6 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
/* get the set of edges that will be in the new mesh (i.e. all edges
* that have both verts in the new mesh)
*/
- maxEdges = dm->getNumEdges(dm);
for(i = 0; i < maxEdges; ++i) {
MEdge me;
dm->getEdge(dm, i, &me);
@@ -211,71 +208,72 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
BLI_ghash_size(edgeHash), numFaces);
/* copy the vertices across */
- for(hashIter = BLI_ghashIterator_new(vertHash);
- !BLI_ghashIterator_isDone(hashIter);
- BLI_ghashIterator_step(hashIter)) {
- MVert source;
- MVert *dest;
- int oldIndex = GET_INT_FROM_POINTER(BLI_ghashIterator_getKey(hashIter));
- int newIndex = GET_INT_FROM_POINTER(BLI_ghashIterator_getValue(hashIter));
-
- dm->getVert(dm, oldIndex, &source);
- dest = CDDM_get_vert(result, newIndex);
-
- DM_copy_vert_data(dm, result, oldIndex, newIndex, 1);
- *dest = source;
- }
- BLI_ghashIterator_free(hashIter);
-
- /* copy the edges across, remapping indices */
- for(i = 0; i < BLI_ghash_size(edgeHash); ++i) {
- MEdge source;
- MEdge *dest;
- int oldIndex = GET_INT_FROM_POINTER(BLI_ghash_lookup(edgeHash, SET_INT_IN_POINTER(i)));
-
- dm->getEdge(dm, oldIndex, &source);
- dest = CDDM_get_edge(result, i);
-
- source.v1 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v1)));
- source.v2 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v2)));
-
- DM_copy_edge_data(dm, result, oldIndex, i, 1);
- *dest = source;
- }
-
- /* copy the faces across, remapping indices */
- for(i = 0; i < numFaces; ++i) {
- MFace source;
- MFace *dest;
- int orig_v4;
-
- dm->getFace(dm, faceMap[i], &source);
- dest = CDDM_get_face(result, i);
-
- orig_v4 = source.v4;
-
- source.v1 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v1)));
- source.v2 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v2)));
- source.v3 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v3)));
- if(source.v4)
- source.v4 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v4)));
-
- DM_copy_face_data(dm, result, faceMap[i], i, 1);
- *dest = source;
-
- test_index_face(dest, &result->faceData, i, (orig_v4 ? 4 : 3));
- }
-
- CDDM_calc_normals(result);
-
- BLI_ghash_free(vertHash, NULL, NULL);
- BLI_ghash_free(edgeHash, NULL, NULL);
+ for( hashIter = BLI_ghashIterator_new(vertHash);
+ !BLI_ghashIterator_isDone(hashIter);
+ BLI_ghashIterator_step(hashIter)
+ ) {
+ MVert source;
+ MVert *dest;
+ int oldIndex = GET_INT_FROM_POINTER(BLI_ghashIterator_getKey(hashIter));
+ int newIndex = GET_INT_FROM_POINTER(BLI_ghashIterator_getValue(hashIter));
+
+ dm->getVert(dm, oldIndex, &source);
+ dest = CDDM_get_vert(result, newIndex);
+
+ DM_copy_vert_data(dm, result, oldIndex, newIndex, 1);
+ *dest = source;
+ }
+ BLI_ghashIterator_free(hashIter);
+
+ /* copy the edges across, remapping indices */
+ for(i = 0; i < BLI_ghash_size(edgeHash); ++i) {
+ MEdge source;
+ MEdge *dest;
+ int oldIndex = GET_INT_FROM_POINTER(BLI_ghash_lookup(edgeHash, SET_INT_IN_POINTER(i)));
+
+ dm->getEdge(dm, oldIndex, &source);
+ dest = CDDM_get_edge(result, i);
+
+ source.v1 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v1)));
+ source.v2 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v2)));
+
+ DM_copy_edge_data(dm, result, oldIndex, i, 1);
+ *dest = source;
+ }
- MEM_freeN(vertMap);
- MEM_freeN(edgeMap);
- MEM_freeN(faceMap);
+ /* copy the faces across, remapping indices */
+ for(i = 0; i < numFaces; ++i) {
+ MFace source;
+ MFace *dest;
+ int orig_v4;
+
+ dm->getFace(dm, faceMap[i], &source);
+ dest = CDDM_get_face(result, i);
+
+ orig_v4 = source.v4;
+
+ source.v1 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v1)));
+ source.v2 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v2)));
+ source.v3 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v3)));
+ if(source.v4)
+ source.v4 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v4)));
+
+ DM_copy_face_data(dm, result, faceMap[i], i, 1);
+ *dest = source;
+
+ test_index_face(dest, &result->faceData, i, (orig_v4 ? 4 : 3));
+ }
- return result;
+ CDDM_calc_normals(result);
+
+ BLI_ghash_free(vertHash, NULL, NULL);
+ BLI_ghash_free(edgeHash, NULL, NULL);
+
+ MEM_freeN(vertMap);
+ MEM_freeN(edgeMap);
+ MEM_freeN(faceMap);
+
+ return result;
}
@@ -287,19 +285,19 @@ ModifierTypeInfo modifierType_Build = {
/* flags */ eModifierTypeFlag_AcceptsMesh
| eModifierTypeFlag_AcceptsCVs,
/* copyData */ copyData,
- /* deformVerts */ 0,
- /* deformMatrices */ 0,
- /* deformVertsEM */ 0,
- /* deformMatricesEM */ 0,
+ /* deformVerts */ NULL,
+ /* deformMatrices */ NULL,
+ /* deformVertsEM */ NULL,
+ /* deformMatricesEM */ NULL,
/* applyModifier */ applyModifier,
- /* applyModifierEM */ 0,
+ /* applyModifierEM */ NULL,
/* initData */ initData,
- /* requiredDataMask */ 0,
- /* freeData */ 0,
- /* isDisabled */ 0,
- /* updateDepgraph */ 0,
+ /* requiredDataMask */ NULL,
+ /* freeData */ NULL,
+ /* isDisabled */ NULL,
+ /* updateDepgraph */ NULL,
/* dependsOnTime */ dependsOnTime,
- /* dependsOnNormals */ 0,
- /* foreachObjectLink */ 0,
- /* foreachIDLink */ 0,
+ /* dependsOnNormals */ NULL,
+ /* foreachObjectLink */ NULL,
+ /* foreachIDLink */ NULL
};
diff --git a/source/blender/modifiers/intern/MOD_cast.c b/source/blender/modifiers/intern/MOD_cast.c
index 17c2ec40b7e..68e9e173ee6 100644
--- a/source/blender/modifiers/intern/MOD_cast.c
+++ b/source/blender/modifiers/intern/MOD_cast.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_cast.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
diff --git a/source/blender/modifiers/intern/MOD_cloth.c b/source/blender/modifiers/intern/MOD_cloth.c
index bb1fc67ef8b..999349dca7f 100644
--- a/source/blender/modifiers/intern/MOD_cloth.c
+++ b/source/blender/modifiers/intern/MOD_cloth.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_cloth.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_cloth_types.h"
#include "DNA_scene_types.h"
#include "DNA_object_types.h"
diff --git a/source/blender/modifiers/intern/MOD_collision.c b/source/blender/modifiers/intern/MOD_collision.c
index 106e8b3957a..e1371b3b86c 100644
--- a/source/blender/modifiers/intern/MOD_collision.c
+++ b/source/blender/modifiers/intern/MOD_collision.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_collision.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_scene_types.h"
#include "DNA_object_types.h"
#include "DNA_meshdata_types.h"
diff --git a/source/blender/modifiers/intern/MOD_curve.c b/source/blender/modifiers/intern/MOD_curve.c
index d458d026c61..84fee7b5102 100644
--- a/source/blender/modifiers/intern/MOD_curve.c
+++ b/source/blender/modifiers/intern/MOD_curve.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_curve.c
+ * \ingroup modifiers
+ */
+
+
#include <string.h>
#include "DNA_scene_types.h"
diff --git a/source/blender/modifiers/intern/MOD_decimate.c b/source/blender/modifiers/intern/MOD_decimate.c
index e90a6ea2ac4..64d6b72a176 100644
--- a/source/blender/modifiers/intern/MOD_decimate.c
+++ b/source/blender/modifiers/intern/MOD_decimate.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_decimate.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_meshdata_types.h"
#include "BLI_math.h"
diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c
index 919814edf59..2ab6921dc8a 100644
--- a/source/blender/modifiers/intern/MOD_displace.c
+++ b/source/blender/modifiers/intern/MOD_displace.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_displace.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
diff --git a/source/blender/modifiers/intern/MOD_edgesplit.c b/source/blender/modifiers/intern/MOD_edgesplit.c
index 22b7e72adfc..05e195d9b8f 100644
--- a/source/blender/modifiers/intern/MOD_edgesplit.c
+++ b/source/blender/modifiers/intern/MOD_edgesplit.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_edgesplit.c
+ * \ingroup modifiers
+ */
+
+
/* EdgeSplit modifier: Splits edges in the mesh according to sharpness flag
* or edge angle (can be used to achieve autosmoothing) */
diff --git a/source/blender/modifiers/intern/MOD_explode.c b/source/blender/modifiers/intern/MOD_explode.c
index 67476a33a00..aea6997c5d5 100644
--- a/source/blender/modifiers/intern/MOD_explode.c
+++ b/source/blender/modifiers/intern/MOD_explode.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_explode.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_meshdata_types.h"
#include "DNA_scene_types.h"
@@ -180,14 +185,368 @@ static void createFacepa(ExplodeModifierData *emd,
BLI_kdtree_free(tree);
}
-static int edgesplit_get(EdgeHash *edgehash, int v1, int v2)
+static int edgecut_get(EdgeHash *edgehash, int v1, int v2)
{
return GET_INT_FROM_POINTER(BLI_edgehash_lookup(edgehash, v1, v2));
}
-static DerivedMesh * splitEdges(ExplodeModifierData *emd, DerivedMesh *dm){
+
+const short add_faces[24] = {
+ 0,
+ 0, 0, 2, 0, 1, 2, 2, 0, 2, 1,
+ 2, 2, 2, 2, 3, 0, 0, 0, 1, 0,
+ 1, 1, 2
+ };
+
+MFace *get_dface(DerivedMesh *dm, DerivedMesh *split, int cur, int i, MFace *mf)
+{
+ MFace *df = CDDM_get_face(split, cur);
+ DM_copy_face_data(dm, split, i, cur, 1);
+ *df = *mf;
+ return df;
+}
+
+#define SET_VERTS(a, b, c, d) \
+ v[0]=mf->v##a; uv[0]=a-1; \
+ v[1]=mf->v##b; uv[1]=b-1; \
+ v[2]=mf->v##c; uv[2]=c-1; \
+ v[3]=mf->v##d; uv[3]=d-1;
+
+#define GET_ES(v1, v2) edgecut_get(eh, v1, v2);
+#define INT_UV(uvf, c0, c1) interp_v2_v2v2(uvf, mf->uv[c0], mf->uv[c1], 0.5f);
+
+static void remap_faces_3_6_9_12(DerivedMesh *dm, DerivedMesh *split, MFace *mf, int *facepa, int *vertpa, int i, EdgeHash *eh, int cur, int v1, int v2, int v3, int v4)
+{
+ MFace *df1 = get_dface(dm, split, cur, i, mf);
+ MFace *df2 = get_dface(dm, split, cur+1, i, mf);
+ MFace *df3 = get_dface(dm, split, cur+2, i, mf);
+
+ facepa[cur] = vertpa[v1];
+ df1->v1 = v1;
+ df1->v2 = GET_ES(v1, v2)
+ df1->v3 = GET_ES(v2, v3)
+ df1->v4 = v3;
+ df1->flag |= ME_FACE_SEL;
+
+ facepa[cur+1] = vertpa[v2];
+ df2->v1 = GET_ES(v1, v2)
+ df2->v2 = v2;
+ df2->v3 = GET_ES(v2, v3)
+ df2->v4 = 0;
+ df2->flag &= ~ME_FACE_SEL;
+
+ facepa[cur+2] = vertpa[v1];
+ df3->v1 = v1;
+ df3->v2 = v3;
+ df3->v3 = v4;
+ df3->v4 = 0;
+ df3->flag &= ~ME_FACE_SEL;
+}
+
+static void remap_uvs_3_6_9_12(DerivedMesh *dm, DerivedMesh *split, int numlayer, int i, int cur, int c0, int c1, int c2, int c3)
+{
+ MTFace *mf, *df1, *df2, *df3;
+ int l;
+
+ for(l=0; l<numlayer; l++) {
+ mf = CustomData_get_layer_n(&split->faceData, CD_MTFACE, l);
+ df1 = mf+cur;
+ df2 = df1 + 1;
+ df3 = df1 + 2;
+ mf = CustomData_get_layer_n(&dm->faceData, CD_MTFACE, l);
+ mf += i;
+
+ copy_v2_v2(df1->uv[0], mf->uv[c0]);
+ INT_UV(df1->uv[1], c0, c1)
+ INT_UV(df1->uv[2], c1, c2)
+ copy_v2_v2(df1->uv[3], mf->uv[c2]);
+
+ INT_UV(df2->uv[0], c0, c1)
+ copy_v2_v2(df2->uv[1], mf->uv[c1]);
+ INT_UV(df2->uv[2], c1, c2)
+
+ copy_v2_v2(df3->uv[0], mf->uv[c0]);
+ copy_v2_v2(df3->uv[1], mf->uv[c2]);
+ copy_v2_v2(df3->uv[2], mf->uv[c3]);
+ }
+}
+
+static void remap_faces_5_10(DerivedMesh *dm, DerivedMesh *split, MFace *mf, int *facepa, int *vertpa, int i, EdgeHash *eh, int cur, int v1, int v2, int v3, int v4)
+{
+ MFace *df1 = get_dface(dm, split, cur, i, mf);
+ MFace *df2 = get_dface(dm, split, cur+1, i, mf);
+
+ facepa[cur] = vertpa[v1];
+ df1->v1 = v1;
+ df1->v2 = v2;
+ df1->v3 = GET_ES(v2, v3)
+ df1->v4 = GET_ES(v1, v4)
+ df1->flag |= ME_FACE_SEL;
+
+ facepa[cur+1] = vertpa[v3];
+ df2->v1 = GET_ES(v1, v4)
+ df2->v2 = GET_ES(v2, v3)
+ df2->v3 = v3;
+ df2->v4 = v4;
+ df2->flag |= ME_FACE_SEL;
+}
+
+static void remap_uvs_5_10(DerivedMesh *dm, DerivedMesh *split, int numlayer, int i, int cur, int c0, int c1, int c2, int c3)
+{
+ MTFace *mf, *df1, *df2;
+ int l;
+
+ for(l=0; l<numlayer; l++) {
+ mf = CustomData_get_layer_n(&split->faceData, CD_MTFACE, l);
+ df1 = mf+cur;
+ df2 = df1 + 1;
+ mf = CustomData_get_layer_n(&dm->faceData, CD_MTFACE, l);
+ mf += i;
+
+ copy_v2_v2(df1->uv[0], mf->uv[c0]);
+ copy_v2_v2(df1->uv[1], mf->uv[c1]);
+ INT_UV(df1->uv[2], c1, c2)
+ INT_UV(df1->uv[3], c0, c3)
+
+ INT_UV(df2->uv[0], c0, c3)
+ INT_UV(df2->uv[1], c1, c2)
+ copy_v2_v2(df2->uv[2], mf->uv[c2]);
+ copy_v2_v2(df2->uv[3], mf->uv[c3]);
+
+ }
+}
+
+static void remap_faces_15(DerivedMesh *dm, DerivedMesh *split, MFace *mf, int *facepa, int *vertpa, int i, EdgeHash *eh, int cur, int v1, int v2, int v3, int v4)
+{
+ MFace *df1 = get_dface(dm, split, cur, i, mf);
+ MFace *df2 = get_dface(dm, split, cur+1, i, mf);
+ MFace *df3 = get_dface(dm, split, cur+2, i, mf);
+ MFace *df4 = get_dface(dm, split, cur+3, i, mf);
+
+ facepa[cur] = vertpa[v1];
+ df1->v1 = v1;
+ df1->v2 = GET_ES(v1, v2)
+ df1->v3 = GET_ES(v1, v3)
+ df1->v4 = GET_ES(v1, v4)
+ df1->flag |= ME_FACE_SEL;
+
+ facepa[cur+1] = vertpa[v2];
+ df2->v1 = GET_ES(v1, v2)
+ df2->v2 = v2;
+ df2->v3 = GET_ES(v2, v3)
+ df2->v4 = GET_ES(v1, v3)
+ df2->flag |= ME_FACE_SEL;
+
+ facepa[cur+2] = vertpa[v3];
+ df3->v1 = GET_ES(v1, v3)
+ df3->v2 = GET_ES(v2, v3)
+ df3->v3 = v3;
+ df3->v4 = GET_ES(v3, v4)
+ df3->flag |= ME_FACE_SEL;
+
+ facepa[cur+3] = vertpa[v4];
+ df4->v1 = GET_ES(v1, v4)
+ df4->v2 = GET_ES(v1, v3)
+ df4->v3 = GET_ES(v3, v4)
+ df4->v4 = v4;
+ df4->flag |= ME_FACE_SEL;
+}
+
+static void remap_uvs_15(DerivedMesh *dm, DerivedMesh *split, int numlayer, int i, int cur, int c0, int c1, int c2, int c3)
+{
+ MTFace *mf, *df1, *df2, *df3, *df4;
+ int l;
+
+ for(l=0; l<numlayer; l++) {
+ mf = CustomData_get_layer_n(&split->faceData, CD_MTFACE, l);
+ df1 = mf+cur;
+ df2 = df1 + 1;
+ df3 = df1 + 2;
+ df4 = df1 + 3;
+ mf = CustomData_get_layer_n(&dm->faceData, CD_MTFACE, l);
+ mf += i;
+
+ copy_v2_v2(df1->uv[0], mf->uv[c0]);
+ INT_UV(df1->uv[1], c0, c1)
+ INT_UV(df1->uv[2], c0, c2)
+ INT_UV(df1->uv[3], c0, c3)
+
+ INT_UV(df2->uv[0], c0, c1)
+ copy_v2_v2(df2->uv[1], mf->uv[c1]);
+ INT_UV(df2->uv[2], c1, c2)
+ INT_UV(df2->uv[3], c0, c2)
+
+ INT_UV(df3->uv[0], c0, c2)
+ INT_UV(df3->uv[1], c1, c2)
+ copy_v2_v2(df3->uv[2], mf->uv[c2]);
+ INT_UV(df3->uv[3], c2, c3)
+
+ INT_UV(df4->uv[0], c0, c3)
+ INT_UV(df4->uv[1], c0, c2)
+ INT_UV(df4->uv[2], c2, c3)
+ copy_v2_v2(df4->uv[3], mf->uv[c3]);
+ }
+}
+
+static void remap_faces_7_11_13_14(DerivedMesh *dm, DerivedMesh *split, MFace *mf, int *facepa, int *vertpa, int i, EdgeHash *eh, int cur, int v1, int v2, int v3, int v4)
+{
+ MFace *df1 = get_dface(dm, split, cur, i, mf);
+ MFace *df2 = get_dface(dm, split, cur+1, i, mf);
+ MFace *df3 = get_dface(dm, split, cur+2, i, mf);
+
+ facepa[cur] = vertpa[v1];
+ df1->v1 = v1;
+ df1->v2 = GET_ES(v1, v2)
+ df1->v3 = GET_ES(v2, v3)
+ df1->v4 = GET_ES(v1, v4)
+ df1->flag |= ME_FACE_SEL;
+
+ facepa[cur+1] = vertpa[v2];
+ df2->v1 = GET_ES(v1, v2)
+ df2->v2 = v2;
+ df2->v3 = GET_ES(v2, v3)
+ df2->v4 = 0;
+ df2->flag &= ~ME_FACE_SEL;
+
+ facepa[cur+2] = vertpa[v4];
+ df3->v1 = GET_ES(v1, v4)
+ df3->v2 = GET_ES(v2, v3)
+ df3->v3 = v3;
+ df3->v4 = v4;
+ df3->flag |= ME_FACE_SEL;
+}
+
+static void remap_uvs_7_11_13_14(DerivedMesh *dm, DerivedMesh *split, int numlayer, int i, int cur, int c0, int c1, int c2, int c3)
+{
+ MTFace *mf, *df1, *df2, *df3;
+ int l;
+
+ for(l=0; l<numlayer; l++) {
+ mf = CustomData_get_layer_n(&split->faceData, CD_MTFACE, l);
+ df1 = mf+cur;
+ df2 = df1 + 1;
+ df3 = df1 + 2;
+ mf = CustomData_get_layer_n(&dm->faceData, CD_MTFACE, l);
+ mf += i;
+
+ copy_v2_v2(df1->uv[0], mf->uv[c0]);
+ INT_UV(df1->uv[1], c0, c1)
+ INT_UV(df1->uv[2], c1, c2)
+ INT_UV(df1->uv[3], c0, c3)
+
+ INT_UV(df2->uv[0], c0, c1)
+ copy_v2_v2(df2->uv[1], mf->uv[c1]);
+ INT_UV(df2->uv[2], c1, c2)
+
+ INT_UV(df3->uv[0], c0, c3)
+ INT_UV(df3->uv[1], c1, c2)
+ copy_v2_v2(df3->uv[2], mf->uv[c2]);
+ copy_v2_v2(df3->uv[3], mf->uv[c3]);
+ }
+}
+
+static void remap_faces_19_21_22(DerivedMesh *dm, DerivedMesh *split, MFace *mf, int *facepa, int *vertpa, int i, EdgeHash *eh, int cur, int v1, int v2, int v3)
+{
+ MFace *df1 = get_dface(dm, split, cur, i, mf);
+ MFace *df2 = get_dface(dm, split, cur+1, i, mf);
+
+ facepa[cur] = vertpa[v1];
+ df1->v1 = v1;
+ df1->v2 = GET_ES(v1, v2)
+ df1->v3 = GET_ES(v1, v3)
+ df1->v4 = 0;
+ df1->flag &= ~ME_FACE_SEL;
+
+ facepa[cur+1] = vertpa[v2];
+ df2->v1 = GET_ES(v1, v2)
+ df2->v2 = v2;
+ df2->v3 = v3;
+ df2->v4 = GET_ES(v1, v3)
+ df2->flag |= ME_FACE_SEL;
+}
+
+static void remap_uvs_19_21_22(DerivedMesh *dm, DerivedMesh *split, int numlayer, int i, int cur, int c0, int c1, int c2)
+{
+ MTFace *mf, *df1, *df2;
+ int l;
+
+ for(l=0; l<numlayer; l++) {
+ mf = CustomData_get_layer_n(&split->faceData, CD_MTFACE, l);
+ df1 = mf+cur;
+ df2 = df1 + 1;
+ mf = CustomData_get_layer_n(&dm->faceData, CD_MTFACE, l);
+ mf += i;
+
+ copy_v2_v2(df1->uv[0], mf->uv[c0]);
+ INT_UV(df1->uv[1], c0, c1)
+ INT_UV(df1->uv[2], c0, c2)
+
+ INT_UV(df2->uv[0], c0, c1)
+ copy_v2_v2(df2->uv[1], mf->uv[c1]);
+ copy_v2_v2(df2->uv[2], mf->uv[c2]);
+ INT_UV(df2->uv[3], c0, c2)
+ }
+}
+
+static void remap_faces_23(DerivedMesh *dm, DerivedMesh *split, MFace *mf, int *facepa, int *vertpa, int i, EdgeHash *eh, int cur, int v1, int v2, int v3)
+{
+ MFace *df1 = get_dface(dm, split, cur, i, mf);
+ MFace *df2 = get_dface(dm, split, cur+1, i, mf);
+ MFace *df3 = get_dface(dm, split, cur+2, i, mf);
+
+ facepa[cur] = vertpa[v1];
+ df1->v1 = v1;
+ df1->v2 = GET_ES(v1, v2)
+ df1->v3 = GET_ES(v2, v3)
+ df1->v4 = GET_ES(v1, v3)
+ df1->flag |= ME_FACE_SEL;
+
+ facepa[cur+1] = vertpa[v2];
+ df2->v1 = GET_ES(v1, v2)
+ df2->v2 = v2;
+ df2->v3 = GET_ES(v2, v3)
+ df2->v4 = 0;
+ df2->flag &= ~ME_FACE_SEL;
+
+ facepa[cur+2] = vertpa[v3];
+ df3->v1 = GET_ES(v1, v3)
+ df3->v2 = GET_ES(v2, v3)
+ df3->v3 = v3;
+ df3->v4 = 0;
+ df3->flag &= ~ME_FACE_SEL;
+}
+
+static void remap_uvs_23(DerivedMesh *dm, DerivedMesh *split, int numlayer, int i, int cur, int c0, int c1, int c2)
+{
+ MTFace *mf, *df1, *df2, *df3;
+ int l;
+
+ for(l=0; l<numlayer; l++) {
+ mf = CustomData_get_layer_n(&split->faceData, CD_MTFACE, l);
+ df1 = mf+cur;
+ df2 = df1 + 1;
+ df3 = df1 + 2;
+ mf = CustomData_get_layer_n(&dm->faceData, CD_MTFACE, l);
+ mf += i;
+
+ copy_v2_v2(df1->uv[0], mf->uv[c0]);
+ INT_UV(df1->uv[1], c0, c1)
+ INT_UV(df1->uv[2], c1, c2)
+ INT_UV(df1->uv[3], c0, c2)
+
+ INT_UV(df2->uv[0], c0, c1)
+ copy_v2_v2(df2->uv[1], mf->uv[c1]);
+ INT_UV(df2->uv[2], c1, c2)
+
+ INT_UV(df2->uv[0], c0, c2)
+ INT_UV(df2->uv[1], c1, c2)
+ copy_v2_v2(df2->uv[2], mf->uv[c2]);
+ }
+}
+
+static DerivedMesh * cutEdges(ExplodeModifierData *emd, DerivedMesh *dm){
DerivedMesh *splitdm;
- MFace *mf=0,*df1=0,*df2=0,*df3=0;
+ MFace *mf=NULL,*df1=NULL;
MFace *mface=dm->getFaceArray(dm);
MVert *dupve, *mv;
EdgeHash *edgehash;
@@ -198,8 +557,9 @@ static DerivedMesh * splitEdges(ExplodeModifierData *emd, DerivedMesh *dm){
int *facesplit = MEM_callocN(sizeof(int)*totface,"explode_facesplit");
int *vertpa = MEM_callocN(sizeof(int)*totvert,"explode_vertpa2");
int *facepa = emd->facepa;
- int *fs, totesplit=0,totfsplit=0,totin=0,curdupface=0,curdupin=0;
- int i,j,v1,v2,v3,v4,esplit;
+ int *fs, totesplit=0,totfsplit=0,curdupface=0;
+ int i,j,v1,v2,v3,v4,esplit, v[4], uv[4];
+ int numlayer;
edgehash= BLI_edgehash_new();
@@ -214,52 +574,48 @@ static DerivedMesh * splitEdges(ExplodeModifierData *emd, DerivedMesh *dm){
/* mark edges for splitting and how to split faces */
for (i=0,mf=mface,fs=facesplit; i<totface; i++,mf++,fs++) {
- if(mf->v4){
- v1=vertpa[mf->v1];
- v2=vertpa[mf->v2];
- v3=vertpa[mf->v3];
- v4=vertpa[mf->v4];
+ v1=vertpa[mf->v1];
+ v2=vertpa[mf->v2];
+ v3=vertpa[mf->v3];
- if(v1!=v2){
- BLI_edgehash_insert(edgehash, mf->v1, mf->v2, NULL);
- (*fs)++;
- }
+ if(v1!=v2){
+ BLI_edgehash_insert(edgehash, mf->v1, mf->v2, NULL);
+ (*fs) |= 1;
+ }
- if(v2!=v3){
- BLI_edgehash_insert(edgehash, mf->v2, mf->v3, NULL);
- (*fs)++;
- }
+ if(v2!=v3){
+ BLI_edgehash_insert(edgehash, mf->v2, mf->v3, NULL);
+ (*fs) |= 2;
+ }
+
+ if(mf->v4){
+ v4=vertpa[mf->v4];
if(v3!=v4){
BLI_edgehash_insert(edgehash, mf->v3, mf->v4, NULL);
- (*fs)++;
+ (*fs) |= 4;
}
if(v1!=v4){
BLI_edgehash_insert(edgehash, mf->v1, mf->v4, NULL);
- (*fs)++;
+ (*fs) |= 8;
}
- if(*fs==2){
- if((v1==v2 && v3==v4) || (v1==v4 && v2==v3))
- *fs=1;
- else if(v1!=v2){
- if(v1!=v4)
- BLI_edgehash_insert(edgehash, mf->v2, mf->v3, NULL);
- else
- BLI_edgehash_insert(edgehash, mf->v3, mf->v4, NULL);
- }
- else{
- if(v1!=v4)
- BLI_edgehash_insert(edgehash, mf->v1, mf->v2, NULL);
- else
- BLI_edgehash_insert(edgehash, mf->v1, mf->v4, NULL);
- }
+ /* mark center vertex as a fake edge split */
+ if(*fs == 15)
+ BLI_edgehash_insert(edgehash, mf->v1, mf->v3, NULL);
+ }
+ else {
+ (*fs) |= 16; /* mark face as tri */
+
+ if(v1!=v3){
+ BLI_edgehash_insert(edgehash, mf->v1, mf->v3, NULL);
+ (*fs) |= 4;
}
}
}
- /* count splits & reindex */
+ /* count splits & create indexes for new verts */
ehi= BLI_edgehashIterator_new(edgehash);
totesplit=totvert;
for(; !BLI_edgehashIterator_isDone(ehi); BLI_edgehashIterator_step(ehi)) {
@@ -269,24 +625,11 @@ static DerivedMesh * splitEdges(ExplodeModifierData *emd, DerivedMesh *dm){
BLI_edgehashIterator_free(ehi);
/* count new faces due to splitting */
- for(i=0,fs=facesplit; i<totface; i++,fs++){
- if(*fs==1)
- totfsplit+=1;
- else if(*fs==2)
- totfsplit+=2;
- else if(*fs==3)
- totfsplit+=3;
- else if(*fs==4){
- totfsplit+=3;
-
- mf=dm->getFaceData(dm,i,CD_MFACE);//CDDM_get_face(dm,i);
-
- if(vertpa[mf->v1]!=vertpa[mf->v2] && vertpa[mf->v2]!=vertpa[mf->v3])
- totin++;
- }
- }
+ for(i=0,fs=facesplit; i<totface; i++,fs++)
+ totfsplit += add_faces[*fs];
- splitdm= CDDM_from_template(dm, totesplit+totin, dm->getNumEdges(dm),totface+totfsplit);
+ splitdm= CDDM_from_template(dm, totesplit, 0, totface+totfsplit);
+ numlayer = CustomData_number_of_layers(&splitdm->faceData, CD_MTFACE);
/* copy new faces & verts (is it really this painful with custom data??) */
for(i=0; i<totvert; i++){
@@ -298,19 +641,10 @@ static DerivedMesh * splitEdges(ExplodeModifierData *emd, DerivedMesh *dm){
DM_copy_vert_data(dm, splitdm, i, i, 1);
*dest = source;
}
- for(i=0; i<totface; i++){
- MFace source;
- MFace *dest;
- dm->getFace(dm, i, &source);
- dest = CDDM_get_face(splitdm, i);
-
- DM_copy_face_data(dm, splitdm, i, i, 1);
- *dest = source;
- }
/* override original facepa (original pointer is saved in caller function) */
facepa= MEM_callocN(sizeof(int)*(totface+totfsplit),"explode_facepa");
- memcpy(facepa,emd->facepa,totface*sizeof(int));
+ //memcpy(facepa,emd->facepa,totface*sizeof(int));
emd->facepa=facepa;
/* create new verts */
@@ -333,320 +667,101 @@ static DerivedMesh * splitEdges(ExplodeModifierData *emd, DerivedMesh *dm){
BLI_edgehashIterator_free(ehi);
/* create new faces */
- curdupface=totface;
- curdupin=totesplit;
+ curdupface=0;//=totface;
+ //curdupin=totesplit;
for(i=0,fs=facesplit; i<totface; i++,fs++){
- if(*fs){
- mf=CDDM_get_face(splitdm,i);
-
- v1=vertpa[mf->v1];
- v2=vertpa[mf->v2];
- v3=vertpa[mf->v3];
- v4=vertpa[mf->v4];
- /* ouch! creating new faces & remapping them to new verts is no fun */
- if(*fs==1){
- df1=CDDM_get_face(splitdm,curdupface);
- DM_copy_face_data(splitdm,splitdm,i,curdupface,1);
- *df1=*mf;
- curdupface++;
-
- if(v1==v2){
- df1->v1=edgesplit_get(edgehash, mf->v1, mf->v4);
- df1->v2=edgesplit_get(edgehash, mf->v2, mf->v3);
- mf->v3=df1->v2;
- mf->v4=df1->v1;
- }
- else{
- df1->v1=edgesplit_get(edgehash, mf->v1, mf->v2);
- df1->v4=edgesplit_get(edgehash, mf->v3, mf->v4);
- mf->v2=df1->v1;
- mf->v3=df1->v4;
- }
-
- facepa[i]=v1;
- facepa[curdupface-1]=v3;
-
- test_index_face(df1, &splitdm->faceData, curdupface, (df1->v4 ? 4 : 3));
- }
- if(*fs==2){
- df1=CDDM_get_face(splitdm,curdupface);
- DM_copy_face_data(splitdm,splitdm,i,curdupface,1);
- *df1=*mf;
- curdupface++;
-
- df2=CDDM_get_face(splitdm,curdupface);
- DM_copy_face_data(splitdm,splitdm,i,curdupface,1);
- *df2=*mf;
- curdupface++;
-
- if(v1!=v2){
- if(v1!=v4){
- df1->v1=edgesplit_get(edgehash, mf->v1, mf->v4);
- df1->v2=edgesplit_get(edgehash, mf->v1, mf->v2);
- df2->v1=df1->v3=mf->v2;
- df2->v3=df1->v4=mf->v4;
- df2->v2=mf->v3;
-
- mf->v2=df1->v2;
- mf->v3=df1->v1;
-
- df2->v4=mf->v4=0;
-
- facepa[i]=v1;
- }
- else{
- df1->v2=edgesplit_get(edgehash, mf->v1, mf->v2);
- df1->v3=edgesplit_get(edgehash, mf->v2, mf->v3);
- df1->v4=mf->v3;
- df2->v2=mf->v3;
- df2->v3=mf->v4;
-
- mf->v1=df1->v2;
- mf->v3=df1->v3;
-
- df2->v4=mf->v4=0;
-
- facepa[i]=v2;
- }
- facepa[curdupface-1]=facepa[curdupface-2]=v3;
- }
- else{
- if(v1!=v4){
- df1->v3=edgesplit_get(edgehash, mf->v3, mf->v4);
- df1->v4=edgesplit_get(edgehash, mf->v1, mf->v4);
- df1->v2=mf->v3;
-
- mf->v1=df1->v4;
- mf->v2=df1->v3;
- mf->v3=mf->v4;
-
- df2->v4=mf->v4=0;
-
- facepa[i]=v4;
- }
- else{
- df1->v3=edgesplit_get(edgehash, mf->v2, mf->v3);
- df1->v4=edgesplit_get(edgehash, mf->v3, mf->v4);
- df1->v1=mf->v4;
- df1->v2=mf->v2;
- df2->v3=mf->v4;
-
- mf->v1=df1->v4;
- mf->v2=df1->v3;
-
- df2->v4=mf->v4=0;
-
- facepa[i]=v3;
- }
-
- facepa[curdupface-1]=facepa[curdupface-2]=v1;
- }
-
- test_index_face(df1, &splitdm->faceData, curdupface-2, (df1->v4 ? 4 : 3));
- test_index_face(df1, &splitdm->faceData, curdupface-1, (df1->v4 ? 4 : 3));
- }
- else if(*fs==3){
- df1=CDDM_get_face(splitdm,curdupface);
- DM_copy_face_data(splitdm,splitdm,i,curdupface,1);
- *df1=*mf;
- curdupface++;
-
- df2=CDDM_get_face(splitdm,curdupface);
- DM_copy_face_data(splitdm,splitdm,i,curdupface,1);
- *df2=*mf;
- curdupface++;
-
- df3=CDDM_get_face(splitdm,curdupface);
- DM_copy_face_data(splitdm,splitdm,i,curdupface,1);
- *df3=*mf;
- curdupface++;
-
- if(v1==v2){
- df2->v1=df1->v1=edgesplit_get(edgehash, mf->v1, mf->v4);
- df3->v1=df1->v2=edgesplit_get(edgehash, mf->v2, mf->v3);
- df3->v3=df2->v2=df1->v3=edgesplit_get(edgehash, mf->v3, mf->v4);
- df3->v2=mf->v3;
- df2->v3=mf->v4;
- df1->v4=df2->v4=df3->v4=0;
-
- mf->v3=df1->v2;
- mf->v4=df1->v1;
-
- facepa[i]=facepa[curdupface-3]=v1;
- facepa[curdupface-1]=v3;
- facepa[curdupface-2]=v4;
- }
- else if(v2==v3){
- df3->v1=df2->v3=df1->v1=edgesplit_get(edgehash, mf->v1, mf->v4);
- df2->v2=df1->v2=edgesplit_get(edgehash, mf->v1, mf->v2);
- df3->v2=df1->v3=edgesplit_get(edgehash, mf->v3, mf->v4);
-
- df3->v3=mf->v4;
- df2->v1=mf->v1;
- df1->v4=df2->v4=df3->v4=0;
-
- mf->v1=df1->v2;
- mf->v4=df1->v3;
-
- facepa[i]=facepa[curdupface-3]=v2;
- facepa[curdupface-1]=v4;
- facepa[curdupface-2]=v1;
- }
- else if(v3==v4){
- df3->v2=df2->v1=df1->v1=edgesplit_get(edgehash, mf->v1, mf->v2);
- df2->v3=df1->v2=edgesplit_get(edgehash, mf->v2, mf->v3);
- df3->v3=df1->v3=edgesplit_get(edgehash, mf->v1, mf->v4);
-
- df3->v1=mf->v1;
- df2->v2=mf->v2;
- df1->v4=df2->v4=df3->v4=0;
-
- mf->v1=df1->v3;
- mf->v2=df1->v2;
-
- facepa[i]=facepa[curdupface-3]=v3;
- facepa[curdupface-1]=v1;
- facepa[curdupface-2]=v2;
- }
- else{
- df3->v1=df1->v1=edgesplit_get(edgehash, mf->v1, mf->v2);
- df3->v3=df2->v1=df1->v2=edgesplit_get(edgehash, mf->v2, mf->v3);
- df2->v3=df1->v3=edgesplit_get(edgehash, mf->v3, mf->v4);
-
- df3->v2=mf->v2;
- df2->v2=mf->v3;
- df1->v4=df2->v4=df3->v4=0;
-
- mf->v2=df1->v1;
- mf->v3=df1->v3;
-
- facepa[i]=facepa[curdupface-3]=v1;
- facepa[curdupface-1]=v2;
- facepa[curdupface-2]=v3;
- }
-
- test_index_face(df1, &splitdm->faceData, curdupface-3, (df1->v4 ? 4 : 3));
- test_index_face(df1, &splitdm->faceData, curdupface-2, (df1->v4 ? 4 : 3));
- test_index_face(df1, &splitdm->faceData, curdupface-1, (df1->v4 ? 4 : 3));
- }
- else if(*fs==4){
- if(v1!=v2 && v2!=v3){
-
- /* set new vert to face center */
- mv=CDDM_get_vert(splitdm,mf->v1);
- dupve=CDDM_get_vert(splitdm,curdupin);
- DM_copy_vert_data(splitdm,splitdm,mf->v1,curdupin,1);
- *dupve=*mv;
-
- mv=CDDM_get_vert(splitdm,mf->v2);
- VECADD(dupve->co,dupve->co,mv->co);
- mv=CDDM_get_vert(splitdm,mf->v3);
- VECADD(dupve->co,dupve->co,mv->co);
- mv=CDDM_get_vert(splitdm,mf->v4);
- VECADD(dupve->co,dupve->co,mv->co);
- mul_v3_fl(dupve->co,0.25);
-
-
- df1=CDDM_get_face(splitdm,curdupface);
- DM_copy_face_data(splitdm,splitdm,i,curdupface,1);
- *df1=*mf;
- curdupface++;
-
- df2=CDDM_get_face(splitdm,curdupface);
- DM_copy_face_data(splitdm,splitdm,i,curdupface,1);
- *df2=*mf;
- curdupface++;
-
- df3=CDDM_get_face(splitdm,curdupface);
- DM_copy_face_data(splitdm,splitdm,i,curdupface,1);
- *df3=*mf;
- curdupface++;
-
- df1->v1=edgesplit_get(edgehash, mf->v1, mf->v2);
- df3->v2=df1->v3=edgesplit_get(edgehash, mf->v2, mf->v3);
-
- df2->v1=edgesplit_get(edgehash, mf->v1, mf->v4);
- df3->v4=df2->v3=edgesplit_get(edgehash, mf->v3, mf->v4);
-
- df3->v1=df2->v2=df1->v4=curdupin;
-
- mf->v2=df1->v1;
- mf->v3=curdupin;
- mf->v4=df2->v1;
-
- curdupin++;
-
- facepa[i]=v1;
- facepa[curdupface-3]=v2;
- facepa[curdupface-2]=v3;
- facepa[curdupface-1]=v4;
-
- test_index_face(df1, &splitdm->faceData, curdupface-3, (df1->v4 ? 4 : 3));
-
- test_index_face(df1, &splitdm->faceData, curdupface-2, (df1->v4 ? 4 : 3));
- test_index_face(df1, &splitdm->faceData, curdupface-1, (df1->v4 ? 4 : 3));
- }
- else{
- df1=CDDM_get_face(splitdm,curdupface);
- DM_copy_face_data(splitdm,splitdm,i,curdupface,1);
- *df1=*mf;
- curdupface++;
-
- df2=CDDM_get_face(splitdm,curdupface);
- DM_copy_face_data(splitdm,splitdm,i,curdupface,1);
- *df2=*mf;
- curdupface++;
-
- df3=CDDM_get_face(splitdm,curdupface);
- DM_copy_face_data(splitdm,splitdm,i,curdupface,1);
- *df3=*mf;
- curdupface++;
-
- if(v2==v3){
- df1->v1=edgesplit_get(edgehash, mf->v1, mf->v2);
- df3->v1=df1->v2=df1->v3=edgesplit_get(edgehash, mf->v2, mf->v3);
- df2->v1=df1->v4=edgesplit_get(edgehash, mf->v1, mf->v4);
-
- df3->v3=df2->v3=edgesplit_get(edgehash, mf->v3, mf->v4);
-
- df3->v2=mf->v3;
- df3->v4=0;
-
- mf->v2=df1->v1;
- mf->v3=df1->v4;
- mf->v4=0;
-
- facepa[i]=v1;
- facepa[curdupface-3]=facepa[curdupface-2]=v2;
- facepa[curdupface-1]=v3;
- }
- else{
- df3->v1=df2->v1=df1->v2=edgesplit_get(edgehash, mf->v1, mf->v2);
- df2->v4=df1->v3=edgesplit_get(edgehash, mf->v3, mf->v4);
- df1->v4=edgesplit_get(edgehash, mf->v1, mf->v4);
-
- df3->v3=df2->v2=edgesplit_get(edgehash, mf->v2, mf->v3);
-
- df3->v4=0;
-
- mf->v1=df1->v4;
- mf->v2=df1->v3;
- mf->v3=mf->v4;
- mf->v4=0;
-
- facepa[i]=v4;
- facepa[curdupface-3]=facepa[curdupface-2]=v1;
- facepa[curdupface-1]=v2;
- }
-
- test_index_face(df1, &splitdm->faceData, curdupface-3, (df1->v4 ? 4 : 3));
- test_index_face(df1, &splitdm->faceData, curdupface-2, (df1->v4 ? 4 : 3));
- test_index_face(df1, &splitdm->faceData, curdupface-1, (df1->v4 ? 4 : 3));
- }
- }
+ mf = dm->getFaceData(dm, i, CD_MFACE);
+
+ switch(*fs) {
+ case 3:
+ case 10:
+ case 11:
+ case 15:
+ SET_VERTS(1, 2, 3, 4)
+ break;
+ case 5:
+ case 6:
+ case 7:
+ SET_VERTS(2, 3, 4, 1)
+ break;
+ case 9:
+ case 13:
+ SET_VERTS(4, 1, 2, 3)
+ break;
+ case 12:
+ case 14:
+ SET_VERTS(3, 4, 1, 2)
+ break;
+ case 21:
+ case 23:
+ SET_VERTS(1, 2, 3, 4)
+ break;
+ case 19:
+ SET_VERTS(2, 3, 1, 4)
+ break;
+ case 22:
+ SET_VERTS(3, 1, 2, 4)
+ break;
+ }
- test_index_face(df1, &splitdm->faceData, i, (df1->v4 ? 4 : 3));
+ switch(*fs) {
+ case 3:
+ case 6:
+ case 9:
+ case 12:
+ remap_faces_3_6_9_12(dm, splitdm, mf, facepa, vertpa, i, edgehash, curdupface, v[0], v[1], v[2], v[3]);
+ if(numlayer)
+ remap_uvs_3_6_9_12(dm, splitdm, numlayer, i, curdupface, uv[0], uv[1], uv[2], uv[3]);
+ break;
+ case 5:
+ case 10:
+ remap_faces_5_10(dm, splitdm, mf, facepa, vertpa, i, edgehash, curdupface, v[0], v[1], v[2], v[3]);
+ if(numlayer)
+ remap_uvs_5_10(dm, splitdm, numlayer, i, curdupface, uv[0], uv[1], uv[2], uv[3]);
+ break;
+ case 15:
+ remap_faces_15(dm, splitdm, mf, facepa, vertpa, i, edgehash, curdupface, v[0], v[1], v[2], v[3]);
+ if(numlayer)
+ remap_uvs_15(dm, splitdm, numlayer, i, curdupface, uv[0], uv[1], uv[2], uv[3]);
+ break;
+ case 7:
+ case 11:
+ case 13:
+ case 14:
+ remap_faces_7_11_13_14(dm, splitdm, mf, facepa, vertpa, i, edgehash, curdupface, v[0], v[1], v[2], v[3]);
+ if(numlayer)
+ remap_uvs_7_11_13_14(dm, splitdm, numlayer, i, curdupface, uv[0], uv[1], uv[2], uv[3]);
+ break;
+ case 19:
+ case 21:
+ case 22:
+ remap_faces_19_21_22(dm, splitdm, mf, facepa, vertpa, i, edgehash, curdupface, v[0], v[1], v[2]);
+ if(numlayer)
+ remap_uvs_19_21_22(dm, splitdm, numlayer, i, curdupface, uv[0], uv[1], uv[2]);
+ break;
+ case 23:
+ remap_faces_23(dm, splitdm, mf, facepa, vertpa, i, edgehash, curdupface, v[0], v[1], v[2]);
+ if(numlayer)
+ remap_uvs_23(dm, splitdm, numlayer, i, curdupface, uv[0], uv[1], uv[2]);
+ break;
+ case 0:
+ case 16:
+ df1 = get_dface(dm, splitdm, curdupface, i, mf);
+ facepa[curdupface] = vertpa[mf->v1];
+
+ if(df1->v4)
+ df1->flag |= ME_FACE_SEL;
+ else
+ df1->flag &= ~ME_FACE_SEL;
+ break;
}
+
+ curdupface += add_faces[*fs]+1;
+ }
+
+ for(i=0; i<curdupface; i++) {
+ mf = CDDM_get_face(splitdm, i);
+ test_index_face(mf, &splitdm->faceData, i, (mf->flag & ME_FACE_SEL ? 4 : 3));
}
BLI_edgehash_free(edgehash, NULL);
@@ -675,6 +790,7 @@ static DerivedMesh * explodeMesh(ExplodeModifierData *emd,
int *facepa=emd->facepa;
int totdup=0,totvert=0,totface=0,totpart=0;
int i, j, v, mindex=0;
+ MTFace *mtface = NULL, *mtf;
totface= dm->getNumFaces(dm);
totvert= dm->getNumVerts(dm);
@@ -724,6 +840,7 @@ static DerivedMesh * explodeMesh(ExplodeModifierData *emd,
/* the final duplicated vertices */
explode= CDDM_from_template(dm, totdup, 0,totface);
+ mtface = CustomData_get_layer_named(&explode->faceData, CD_MTFACE, emd->uvname);
/*dupvert= CDDM_get_verts(explode);*/
/* getting back to object space */
@@ -800,16 +917,28 @@ static DerivedMesh * explodeMesh(ExplodeModifierData *emd,
else
mindex = totvert+facepa[i];
- source.v1 = edgesplit_get(vertpahash, source.v1, mindex);
- source.v2 = edgesplit_get(vertpahash, source.v2, mindex);
- source.v3 = edgesplit_get(vertpahash, source.v3, mindex);
+ source.v1 = edgecut_get(vertpahash, source.v1, mindex);
+ source.v2 = edgecut_get(vertpahash, source.v2, mindex);
+ source.v3 = edgecut_get(vertpahash, source.v3, mindex);
if(source.v4)
- source.v4 = edgesplit_get(vertpahash, source.v4, mindex);
+ source.v4 = edgecut_get(vertpahash, source.v4, mindex);
DM_copy_face_data(dm,explode,i,i,1);
*mf = source;
+ /* override uv channel for particle age */
+ if(mtface) {
+ float age = (cfra - pa->time)/pa->lifetime;
+ /* Clamp to this range to avoid flipping to the other side of the coordinates. */
+ CLAMP(age, 0.001f, 0.999f);
+
+ mtf = mtface + i;
+
+ mtf->uv[0][0] = mtf->uv[1][0] = mtf->uv[2][0] = mtf->uv[3][0] = age;
+ mtf->uv[0][1] = mtf->uv[1][1] = mtf->uv[2][1] = mtf->uv[3][1] = 0.5f;
+ }
+
test_index_face(mf, &explode->faceData, i, (orig_v4 ? 4 : 3));
}
@@ -870,9 +999,9 @@ static DerivedMesh * applyModifier(ModifierData *md, Object *ob,
createFacepa(emd,psmd,derivedData);
}
/* 2. create new mesh */
- if(emd->flag & eExplodeFlag_EdgeSplit){
+ if(emd->flag & eExplodeFlag_EdgeCut){
int *facepa = emd->facepa;
- DerivedMesh *splitdm=splitEdges(emd,dm);
+ DerivedMesh *splitdm=cutEdges(emd,dm);
DerivedMesh *explode=explodeMesh(emd, psmd, md->scene, ob, splitdm);
MEM_freeN(emd->facepa);
diff --git a/source/blender/modifiers/intern/MOD_fluidsim.c b/source/blender/modifiers/intern/MOD_fluidsim.c
index 9a1635e3dad..1cce9863ccc 100644
--- a/source/blender/modifiers/intern/MOD_fluidsim.c
+++ b/source/blender/modifiers/intern/MOD_fluidsim.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_fluidsim.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_scene_types.h"
#include "DNA_object_fluidsim.h"
#include "DNA_object_types.h"
diff --git a/source/blender/modifiers/intern/MOD_fluidsim_util.c b/source/blender/modifiers/intern/MOD_fluidsim_util.c
index fdf3209b500..02912e38204 100644
--- a/source/blender/modifiers/intern/MOD_fluidsim_util.c
+++ b/source/blender/modifiers/intern/MOD_fluidsim_util.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_fluidsim_util.c
+ * \ingroup modifiers
+ */
+
+
#include <stddef.h>
#include <zlib.h>
diff --git a/source/blender/modifiers/intern/MOD_fluidsim_util.h b/source/blender/modifiers/intern/MOD_fluidsim_util.h
index 522cf379435..f8af8e6f583 100644
--- a/source/blender/modifiers/intern/MOD_fluidsim_util.h
+++ b/source/blender/modifiers/intern/MOD_fluidsim_util.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/modifiers/intern/MOD_fluidsim_util.h
+ * \ingroup modifiers
+ */
+
+
#ifndef MOD_FLUIDSIM_UTIL_H
#define MOD_FLUIDSIM_UTIL_H
diff --git a/source/blender/modifiers/intern/MOD_hook.c b/source/blender/modifiers/intern/MOD_hook.c
index cbd88f32409..2a85378f987 100644
--- a/source/blender/modifiers/intern/MOD_hook.c
+++ b/source/blender/modifiers/intern/MOD_hook.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_hook.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -244,7 +249,6 @@ static void deformVerts(ModifierData *md, Object *ob,
}
}
else if(dvert) { /* vertex group hook */
- int i;
const float fac_orig= hmd->force;
for(i = 0; i < max_dvert; i++, dvert++) {
diff --git a/source/blender/modifiers/intern/MOD_lattice.c b/source/blender/modifiers/intern/MOD_lattice.c
index c5fb87c8ffc..22427d04338 100644
--- a/source/blender/modifiers/intern/MOD_lattice.c
+++ b/source/blender/modifiers/intern/MOD_lattice.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_lattice.c
+ * \ingroup modifiers
+ */
+
+
#include <string.h>
#include "DNA_object_types.h"
diff --git a/source/blender/modifiers/intern/MOD_mask.c b/source/blender/modifiers/intern/MOD_mask.c
index 19d9c7c9dd8..9519e5b9131 100644
--- a/source/blender/modifiers/intern/MOD_mask.c
+++ b/source/blender/modifiers/intern/MOD_mask.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_mask.c
+ * \ingroup modifiers
+ */
+
+
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c
index 61e7f950e0f..a6b4a5dabcd 100644
--- a/source/blender/modifiers/intern/MOD_meshdeform.c
+++ b/source/blender/modifiers/intern/MOD_meshdeform.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_meshdeform.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
diff --git a/source/blender/modifiers/intern/MOD_mirror.c b/source/blender/modifiers/intern/MOD_mirror.c
index 007d8eb5197..cf31e86a2f5 100644
--- a/source/blender/modifiers/intern/MOD_mirror.c
+++ b/source/blender/modifiers/intern/MOD_mirror.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_mirror.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
diff --git a/source/blender/modifiers/intern/MOD_multires.c b/source/blender/modifiers/intern/MOD_multires.c
index 3b2c552bb9f..7653511da10 100644
--- a/source/blender/modifiers/intern/MOD_multires.c
+++ b/source/blender/modifiers/intern/MOD_multires.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_multires.c
+ * \ingroup modifiers
+ */
+
+
#include <stddef.h>
#include "BKE_cdderivedmesh.h"
diff --git a/source/blender/modifiers/intern/MOD_none.c b/source/blender/modifiers/intern/MOD_none.c
index c08335d638a..bebb9b58774 100644
--- a/source/blender/modifiers/intern/MOD_none.c
+++ b/source/blender/modifiers/intern/MOD_none.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -34,6 +34,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/modifiers/intern/MOD_none.c
+ * \ingroup modifiers
+ */
+
+
#include "BLI_utildefines.h"
diff --git a/source/blender/modifiers/intern/MOD_particleinstance.c b/source/blender/modifiers/intern/MOD_particleinstance.c
index 739d7aa0e6d..1fa0ff7beed 100644
--- a/source/blender/modifiers/intern/MOD_particleinstance.c
+++ b/source/blender/modifiers/intern/MOD_particleinstance.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_particleinstance.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_meshdata_types.h"
#include "MEM_guardedalloc.h"
diff --git a/source/blender/modifiers/intern/MOD_particlesystem.c b/source/blender/modifiers/intern/MOD_particlesystem.c
index 2f3bc0c53f4..a23a53335ef 100644
--- a/source/blender/modifiers/intern/MOD_particlesystem.c
+++ b/source/blender/modifiers/intern/MOD_particlesystem.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_particlesystem.c
+ * \ingroup modifiers
+ */
+
+
#include "stddef.h"
#include "DNA_material_types.h"
diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c
index 7bbb07eb658..ac48a9682a1 100644
--- a/source/blender/modifiers/intern/MOD_screw.c
+++ b/source/blender/modifiers/intern/MOD_screw.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_screw.c
+ * \ingroup modifiers
+ */
+
+
/* Screw modifier: revolves the edges about an axis */
#include "DNA_meshdata_types.h"
diff --git a/source/blender/modifiers/intern/MOD_shapekey.c b/source/blender/modifiers/intern/MOD_shapekey.c
index a2fd83b8bcb..94d23de6573 100644
--- a/source/blender/modifiers/intern/MOD_shapekey.c
+++ b/source/blender/modifiers/intern/MOD_shapekey.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_shapekey.c
+ * \ingroup modifiers
+ */
+
+
#include "BLI_math.h"
#include "DNA_key_types.h"
diff --git a/source/blender/modifiers/intern/MOD_shrinkwrap.c b/source/blender/modifiers/intern/MOD_shrinkwrap.c
index c7f15a94bf2..cfd12833a38 100644
--- a/source/blender/modifiers/intern/MOD_shrinkwrap.c
+++ b/source/blender/modifiers/intern/MOD_shrinkwrap.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_shrinkwrap.c
+ * \ingroup modifiers
+ */
+
+
#include <string.h>
#include "BLI_string.h"
diff --git a/source/blender/modifiers/intern/MOD_simpledeform.c b/source/blender/modifiers/intern/MOD_simpledeform.c
index 9add0e9a67d..0150322ae8c 100644
--- a/source/blender/modifiers/intern/MOD_simpledeform.c
+++ b/source/blender/modifiers/intern/MOD_simpledeform.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_simpledeform.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
diff --git a/source/blender/modifiers/intern/MOD_smoke.c b/source/blender/modifiers/intern/MOD_smoke.c
index 0227d2008e5..46f0483dbff 100644
--- a/source/blender/modifiers/intern/MOD_smoke.c
+++ b/source/blender/modifiers/intern/MOD_smoke.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_smoke.c
+ * \ingroup modifiers
+ */
+
+
#include "stddef.h"
#include "MEM_guardedalloc.h"
diff --git a/source/blender/modifiers/intern/MOD_smooth.c b/source/blender/modifiers/intern/MOD_smooth.c
index 7761995a419..526b54d1cf8 100644
--- a/source/blender/modifiers/intern/MOD_smooth.c
+++ b/source/blender/modifiers/intern/MOD_smooth.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_smooth.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_meshdata_types.h"
#include "BLI_math.h"
diff --git a/source/blender/modifiers/intern/MOD_softbody.c b/source/blender/modifiers/intern/MOD_softbody.c
index 7322628267c..0abf2fa6281 100644
--- a/source/blender/modifiers/intern/MOD_softbody.c
+++ b/source/blender/modifiers/intern/MOD_softbody.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_softbody.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_scene_types.h"
#include "BLI_utildefines.h"
diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c
index 4faf955b953..14a07b62a91 100644
--- a/source/blender/modifiers/intern/MOD_solidify.c
+++ b/source/blender/modifiers/intern/MOD_solidify.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_solidify.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_meshdata_types.h"
#include "BLI_math.h"
@@ -291,7 +296,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
ehi= BLI_edgehashIterator_new(edgehash);
for(; !BLI_edgehashIterator_isDone(ehi); BLI_edgehashIterator_step(ehi)) {
- int eidx= GET_INT_FROM_POINTER(BLI_edgehashIterator_getValue(ehi));
+ eidx= GET_INT_FROM_POINTER(BLI_edgehashIterator_getValue(ehi));
if(edge_users[eidx] >= 0) {
BLI_edgehashIterator_getKey(ehi, &v1, &v2);
orig_mvert[v1].flag |= ME_VERT_TMP_TAG;
@@ -408,7 +413,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
float *vert_angles= MEM_callocN(sizeof(float) * numVerts * 2, "mod_solid_pair"); /* 2 in 1 */
float *vert_accum= vert_angles + numVerts;
float face_angles[4];
- int i, j, vidx;
+ int j, vidx;
face_nors = CustomData_get_layer(&dm->faceData, CD_NORMAL);
if(!face_nors) {
@@ -650,19 +655,19 @@ ModifierTypeInfo modifierType_Solidify = {
| eModifierTypeFlag_EnableInEditmode,
/* copyData */ copyData,
- /* deformVerts */ 0,
- /* deformMatrices */ 0,
- /* deformVertsEM */ 0,
- /* deformMatricesEM */ 0,
+ /* deformVerts */ NULL,
+ /* deformMatrices */ NULL,
+ /* deformVertsEM */ NULL,
+ /* deformMatricesEM */ NULL,
/* applyModifier */ applyModifier,
/* applyModifierEM */ applyModifierEM,
/* initData */ initData,
/* requiredDataMask */ requiredDataMask,
- /* freeData */ 0,
- /* isDisabled */ 0,
- /* updateDepgraph */ 0,
- /* dependsOnTime */ 0,
- /* dependsOnNormals */ 0,
- /* foreachObjectLink */ 0,
- /* foreachIDLink */ 0,
+ /* freeData */ NULL,
+ /* isDisabled */ NULL,
+ /* updateDepgraph */ NULL,
+ /* dependsOnTime */ NULL,
+ /* dependsOnNormals */ NULL,
+ /* foreachObjectLink */ NULL,
+ /* foreachIDLink */ NULL
};
diff --git a/source/blender/modifiers/intern/MOD_subsurf.c b/source/blender/modifiers/intern/MOD_subsurf.c
index 4ba139305d8..823cc03cff2 100644
--- a/source/blender/modifiers/intern/MOD_subsurf.c
+++ b/source/blender/modifiers/intern/MOD_subsurf.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_subsurf.c
+ * \ingroup modifiers
+ */
+
+
#include "stddef.h"
#include "DNA_scene_types.h"
diff --git a/source/blender/modifiers/intern/MOD_surface.c b/source/blender/modifiers/intern/MOD_surface.c
index b5d25d8e146..e0bdb063331 100644
--- a/source/blender/modifiers/intern/MOD_surface.c
+++ b/source/blender/modifiers/intern/MOD_surface.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_surface.c
+ * \ingroup modifiers
+ */
+
+
#include "DNA_scene_types.h"
#include "DNA_object_types.h"
#include "DNA_meshdata_types.h"
diff --git a/source/blender/modifiers/intern/MOD_util.c b/source/blender/modifiers/intern/MOD_util.c
index 8ea717469a3..8c94e6f65bc 100644
--- a/source/blender/modifiers/intern/MOD_util.c
+++ b/source/blender/modifiers/intern/MOD_util.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/modifiers/intern/MOD_util.c
+ * \ingroup modifiers
+ */
+
+
#include <string.h>
#include "DNA_modifier_types.h"
diff --git a/source/blender/modifiers/intern/MOD_util.h b/source/blender/modifiers/intern/MOD_util.h
index a4d63c6d168..a42151904e9 100644
--- a/source/blender/modifiers/intern/MOD_util.h
+++ b/source/blender/modifiers/intern/MOD_util.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/modifiers/intern/MOD_util.h
+ * \ingroup modifiers
+ */
+
+
#ifndef MOD_UTIL_H
#define MOD_UTIL_H
diff --git a/source/blender/modifiers/intern/MOD_uvproject.c b/source/blender/modifiers/intern/MOD_uvproject.c
index 8eaf0d5fbcb..1a572984fe3 100644
--- a/source/blender/modifiers/intern/MOD_uvproject.c
+++ b/source/blender/modifiers/intern/MOD_uvproject.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_uvproject.c
+ * \ingroup modifiers
+ */
+
+
/* UV Project modifier: Generates UVs projected from an object */
#include "DNA_meshdata_types.h"
diff --git a/source/blender/modifiers/intern/MOD_wave.c b/source/blender/modifiers/intern/MOD_wave.c
index dae9fc471cd..575c454c980 100644
--- a/source/blender/modifiers/intern/MOD_wave.c
+++ b/source/blender/modifiers/intern/MOD_wave.c
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/modifiers/intern/MOD_wave.c
+ * \ingroup modifiers
+ */
+
+
#include "BLI_math.h"
#include "DNA_meshdata_types.h"
diff --git a/source/blender/nodes/CMP_node.h b/source/blender/nodes/CMP_node.h
index 4cbb5599797..65c9236710f 100644
--- a/source/blender/nodes/CMP_node.h
+++ b/source/blender/nodes/CMP_node.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file CMP_node.h
+ * \ingroup nodes
+ */
+
#ifndef CMP_NODE_H
#define CMP_NODE_H
diff --git a/source/blender/nodes/SHD_node.h b/source/blender/nodes/SHD_node.h
index 20a7aa083ec..80e5eec6893 100644
--- a/source/blender/nodes/SHD_node.h
+++ b/source/blender/nodes/SHD_node.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SHD_node.h
+ * \ingroup nodes
+ */
+
#ifndef SHD_NODE_H
#define SHD_NODE_H
diff --git a/source/blender/nodes/TEX_node.h b/source/blender/nodes/TEX_node.h
index b741c654b15..23a6b4427af 100644
--- a/source/blender/nodes/TEX_node.h
+++ b/source/blender/nodes/TEX_node.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file TEX_node.h
+ * \ingroup nodes
+ */
+
#ifndef TEX_NODE_H
#define TEX_NODE_H
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c b/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c
index e8cfc8533d1..f18bfb79405 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_alphaOver.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c b/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c
index efa044158a2..bb677521435 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_bilateralblur.c
@@ -1,4 +1,4 @@
-/**
+/*
*
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_blur.c b/source/blender/nodes/intern/CMP_nodes/CMP_blur.c
index 238ac87d101..e01d5ee29bd 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_blur.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_blur.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_brightness.c b/source/blender/nodes/intern/CMP_nodes/CMP_brightness.c
index f2f7636e96b..8d7524d71f5 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_brightness.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_brightness.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c
index 044ed6d069b..ee3dfbc6e1b 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_channelMatte.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c
index eba2d55187e..d028fede25f 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_chromaMatte.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_colorMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_colorMatte.c
index 57063465ac2..5022c25819c 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_colorMatte.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_colorMatte.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c b/source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c
index e4b9ead504b..65d3d598c65 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_colorSpill.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c b/source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c
index 2596037065f..0cecb764722 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_colorbalance.c
@@ -1,4 +1,4 @@
-/**
+/*
*
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_composite.c b/source/blender/nodes/intern/CMP_nodes/CMP_composite.c
index 1bbcb0f7527..d54e47a5647 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_composite.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_composite.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_crop.c b/source/blender/nodes/intern/CMP_nodes/CMP_crop.c
index b8d24fc1b14..a07301a2cb8 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_crop.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_crop.c
@@ -1,4 +1,4 @@
-/**
+/*
*
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_curves.c b/source/blender/nodes/intern/CMP_nodes/CMP_curves.c
index 2252bc2d181..3c6fc72488f 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_curves.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_curves.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c b/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c
index 7f5d5df9d6f..c0168309533 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_defocus.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c
index 73046d70011..2996551fff5 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_dilate.c b/source/blender/nodes/intern/CMP_nodes/CMP_dilate.c
index 3ceaecfed43..8533acdd5a5 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_dilate.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_dilate.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_directionalblur.c b/source/blender/nodes/intern/CMP_nodes/CMP_directionalblur.c
index 533a8b1324b..b00bdba768d 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_directionalblur.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_directionalblur.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_displace.c b/source/blender/nodes/intern/CMP_nodes/CMP_displace.c
index 7871efc30b7..49b65ef0598 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_displace.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_displace.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_distanceMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_distanceMatte.c
index 406f9e829c1..1d379904949 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_distanceMatte.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_distanceMatte.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_filter.c b/source/blender/nodes/intern/CMP_nodes/CMP_filter.c
index 52b0fb008aa..c3450f80979 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_filter.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_filter.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_flip.c b/source/blender/nodes/intern/CMP_nodes/CMP_flip.c
index b0058765136..b1af4ac9d3c 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_flip.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_flip.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c b/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c
index 98af5bff2ec..dfe28e881f4 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_gamma.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_glare.c b/source/blender/nodes/intern/CMP_nodes/CMP_glare.c
index 1d7471680d0..7449b8436ea 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_glare.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_glare.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c b/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c
index 412ed5e6fa5..32e133c3bec 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_hueSatVal.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_huecorrect.c b/source/blender/nodes/intern/CMP_nodes/CMP_huecorrect.c
index 54503d23550..53cb5cc096d 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_huecorrect.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_huecorrect.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_idMask.c b/source/blender/nodes/intern/CMP_nodes/CMP_idMask.c
index 8b422012cec..eeae5fb06de 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_idMask.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_idMask.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_image.c b/source/blender/nodes/intern/CMP_nodes/CMP_image.c
index 5c39e6ea159..bb01f591512 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_image.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_image.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_invert.c b/source/blender/nodes/intern/CMP_nodes/CMP_invert.c
index a60edd5ac7d..5cf652b8af6 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_invert.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_invert.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_lensdist.c b/source/blender/nodes/intern/CMP_nodes/CMP_lensdist.c
index 159bc859450..4343e043c34 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_lensdist.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_lensdist.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_levels.c b/source/blender/nodes/intern/CMP_nodes/CMP_levels.c
index 71170d1633e..876ee565ec7 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_levels.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_levels.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c b/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c
index 91edb48415b..42430ffeff8 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_lummaMatte.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c b/source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c
index f0e0aec37b9..bc294b3be79 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_mapUV.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c b/source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c
index 550e4a2e870..b7da0ed578c 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_mapValue.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_math.c b/source/blender/nodes/intern/CMP_nodes/CMP_math.c
index f5ca9bb9959..86b602d4086 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_math.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_math.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c b/source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c
index 91b8eb8b752..2a7937ef1d8 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_mixrgb.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_normal.c b/source/blender/nodes/intern/CMP_nodes/CMP_normal.c
index 5b218f4d486..920a99f1b93 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_normal.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_normal.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c b/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c
index 1c92eb6519e..b9a4dd4ab8a 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_normalize.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c b/source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c
index 701a3910be9..3cb342aa5ff 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_outputFile.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_premulkey.c b/source/blender/nodes/intern/CMP_nodes/CMP_premulkey.c
index d64a2cee453..5bf3af8e5cb 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_premulkey.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_premulkey.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_rgb.c b/source/blender/nodes/intern/CMP_nodes/CMP_rgb.c
index 975d9cae219..1d8db72584e 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_rgb.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_rgb.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c b/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c
index ff8a2460efc..17d22d41543 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_scale.c b/source/blender/nodes/intern/CMP_nodes/CMP_scale.c
index a524f4cb29b..6f030d3d7b3 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_scale.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_scale.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c
index 040a88bc37b..469425c4ace 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombHSVA.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c
index 1062344db39..969fadf65ad 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombRGBA.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c
index 364457fc5fa..b00885f6940 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYCCA.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c
index 99a625042df..65b0e5a645c 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_sepcombYUVA.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c b/source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c
index 106203ded7a..920bb33604f 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_setalpha.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c b/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c
index 1bb0cdfcd10..e66abd994dd 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_splitViewer.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_texture.c b/source/blender/nodes/intern/CMP_nodes/CMP_texture.c
index 63a43352b2a..8d8480688c7 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_texture.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_texture.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c b/source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c
index d58f0e827c2..ac305ad0319 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_tonemap.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_translate.c b/source/blender/nodes/intern/CMP_nodes/CMP_translate.c
index cad4d79b75c..9db7819658d 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_translate.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_translate.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c b/source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c
index 2000e411f8c..9de4a8ca4ef 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_valToRgb.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_value.c b/source/blender/nodes/intern/CMP_nodes/CMP_value.c
index 787c9135898..bd5f6853dc5 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_value.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_value.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c b/source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c
index 71c8c48db7a..ff17a27d5e5 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_vecBlur.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c b/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c
index f23a82e1dc2..18b445c25fd 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c b/source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c
index 675eae74a53..33e3bd94708 100644
--- a/source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c
+++ b/source/blender/nodes/intern/CMP_nodes/CMP_zcombine.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_util.c b/source/blender/nodes/intern/CMP_util.c
index 9e2fed1877e..28497b98197 100644
--- a/source/blender/nodes/intern/CMP_util.c
+++ b/source/blender/nodes/intern/CMP_util.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/CMP_util.h b/source/blender/nodes/intern/CMP_util.h
index efb711ab416..5df670641ca 100644
--- a/source/blender/nodes/intern/CMP_util.h
+++ b/source/blender/nodes/intern/CMP_util.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_camera.c b/source/blender/nodes/intern/SHD_nodes/SHD_camera.c
index 82c060ed1d6..d6339b0677c 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_camera.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_camera.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_curves.c b/source/blender/nodes/intern/SHD_nodes/SHD_curves.c
index 405c455501c..7e44a090d85 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_curves.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_curves.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c b/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c
index 315655d68bf..75c6799c92a 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_dynamic.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -762,7 +762,7 @@ void register_node_type_sh_dynamic(ListBase *lb)
{
static bNodeType ntype;
- node_type_base(&ntype, SH_NODE_DYNAMIC, "Dynamic", NODE_CLASS_OP_DYNAMIC, NODE_OPTIONS, NULL, NULL);
+ node_type_base(&ntype, NODE_DYNAMIC, "Dynamic", NODE_CLASS_OP_DYNAMIC, NODE_OPTIONS, NULL, NULL);
node_type_size(&ntype, 150, 60, 300);
node_type_init(&ntype, node_dynamic_init_cb);
node_type_storage(&ntype, "NodeScriptDict", node_dynamic_free_storage_cb, node_dynamic_copy_cb);
@@ -777,7 +777,7 @@ void register_node_type_sh_dynamic(ListBase *lb)
{
static bNodeType ntype;
- node_type_base(&ntype, 0, "", 0, 0, NULL, NULL);
+ node_type_base(&ntype, NODE_DYNAMIC, "Dynamic", NODE_CLASS_OP_DYNAMIC, 0, NULL, NULL);
nodeRegisterType(lb, &ntype);
}
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_geom.c b/source/blender/nodes/intern/SHD_nodes/SHD_geom.c
index 32fe457c2d8..dbefa819be0 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_geom.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_geom.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c b/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c
index 6fd8ece8ec9..78a0c197525 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_hueSatVal.c
@@ -1,4 +1,4 @@
-/**
+/*
*
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_invert.c b/source/blender/nodes/intern/SHD_nodes/SHD_invert.c
index 9929afd0bc1..1699493b446 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_invert.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_invert.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c b/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c
index f11200cfc7e..a6f4f7c80df 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_mapping.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_material.c b/source/blender/nodes/intern/SHD_nodes/SHD_material.c
index 4984a1ca821..e8c30b621f5 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_material.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_material.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_math.c b/source/blender/nodes/intern/SHD_nodes/SHD_math.c
index ba2ee6d066a..7d31ab05c85 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_math.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_math.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c b/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c
index eac3c60655a..1520618ced2 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_mixRgb.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_normal.c b/source/blender/nodes/intern/SHD_nodes/SHD_normal.c
index ccbf80edeb7..66045902b69 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_normal.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_normal.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output.c b/source/blender/nodes/intern/SHD_nodes/SHD_output.c
index d61e9def144..548bc067076 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_output.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_output.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c b/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c
index 109147c7d45..821254ad832 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_rgb.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_sepcombRGB.c b/source/blender/nodes/intern/SHD_nodes/SHD_sepcombRGB.c
index da4c7f70022..5939a86df03 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_sepcombRGB.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_sepcombRGB.c
@@ -1,4 +1,4 @@
-/**
+/*
*
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c b/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c
index ff6e3913d19..b3edc3de716 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_squeeze.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_texture.c b/source/blender/nodes/intern/SHD_nodes/SHD_texture.c
index ec36dd8043e..56c8cd062a3 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_texture.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_texture.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c b/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c
index 8603ec018d6..723aeaa82f3 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_valToRgb.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_value.c b/source/blender/nodes/intern/SHD_nodes/SHD_value.c
index 21c58419d9b..22603b880fa 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_value.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_value.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c b/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c
index a85022cffab..c39fff262e4 100644
--- a/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c
+++ b/source/blender/nodes/intern/SHD_nodes/SHD_vectMath.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_util.c b/source/blender/nodes/intern/SHD_util.c
index 8f48c5668fe..33061d61354 100644
--- a/source/blender/nodes/intern/SHD_util.c
+++ b/source/blender/nodes/intern/SHD_util.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/SHD_util.h b/source/blender/nodes/intern/SHD_util.h
index 4134c160f16..70b6cae3232 100644
--- a/source/blender/nodes/intern/SHD_util.h
+++ b/source/blender/nodes/intern/SHD_util.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_at.c b/source/blender/nodes/intern/TEX_nodes/TEX_at.c
index 75fa1e4378d..f4221d63d04 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_at.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_at.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_bricks.c b/source/blender/nodes/intern/TEX_nodes/TEX_bricks.c
index 7a32b6342aa..5ad20c0755e 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_bricks.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_bricks.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_checker.c b/source/blender/nodes/intern/TEX_nodes/TEX_checker.c
index 25cfd4412f5..7f5648f3d88 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_checker.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_checker.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_compose.c b/source/blender/nodes/intern/TEX_nodes/TEX_compose.c
index 3b933927c5e..d2f82992122 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_compose.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_compose.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_coord.c b/source/blender/nodes/intern/TEX_nodes/TEX_coord.c
index 5311dbc2360..6f208b48eee 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_coord.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_coord.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_curves.c b/source/blender/nodes/intern/TEX_nodes/TEX_curves.c
index e4ea39b8591..f470924e810 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_curves.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_curves.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_decompose.c b/source/blender/nodes/intern/TEX_nodes/TEX_decompose.c
index c66e26321b6..635b59a2b44 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_decompose.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_decompose.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_distance.c b/source/blender/nodes/intern/TEX_nodes/TEX_distance.c
index 887fbd1be90..70e2da14808 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_distance.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_distance.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c b/source/blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c
index 66a98b70fd4..13d7e239ca2 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_hueSatVal.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_image.c b/source/blender/nodes/intern/TEX_nodes/TEX_image.c
index a870d1d31fe..f629db0628e 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_image.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_image.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_invert.c b/source/blender/nodes/intern/TEX_nodes/TEX_invert.c
index d6d66abd863..b6dcaecad6c 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_invert.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_invert.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_math.c b/source/blender/nodes/intern/TEX_nodes/TEX_math.c
index c5adfa97fd4..1e48e4d521d 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_math.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_math.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_mixRgb.c b/source/blender/nodes/intern/TEX_nodes/TEX_mixRgb.c
index 152288fcac8..9e651b0f0bb 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_mixRgb.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_mixRgb.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_output.c b/source/blender/nodes/intern/TEX_nodes/TEX_output.c
index b10cfa543a1..c52291a211c 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_output.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_output.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_proc.c b/source/blender/nodes/intern/TEX_nodes/TEX_proc.c
index bba25ea7bd2..084ce045203 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_proc.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_proc.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_rotate.c b/source/blender/nodes/intern/TEX_nodes/TEX_rotate.c
index 92a9fa26311..89d8c10156c 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_rotate.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_rotate.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_scale.c b/source/blender/nodes/intern/TEX_nodes/TEX_scale.c
index 65ae744531b..51a17385bd0 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_scale.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_scale.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_texture.c b/source/blender/nodes/intern/TEX_nodes/TEX_texture.c
index 2bbd08a4c1f..c0fcddc85b8 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_texture.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_texture.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_translate.c b/source/blender/nodes/intern/TEX_nodes/TEX_translate.c
index a570386bcda..1cd0b17e330 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_translate.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_translate.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c b/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c
index 67fb068870c..4a41b8ab8a2 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c b/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c
index f23baffb0ee..f55229c08bc 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_valToRgb.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/TEX_nodes/TEX_viewer.c b/source/blender/nodes/intern/TEX_nodes/TEX_viewer.c
index 5dbfc2561b5..ffbb3e08bbd 100644
--- a/source/blender/nodes/intern/TEX_nodes/TEX_viewer.c
+++ b/source/blender/nodes/intern/TEX_nodes/TEX_viewer.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_util.c b/source/blender/nodes/intern/TEX_util.c
index 60f4cf5aef4..bb97e2f82fa 100644
--- a/source/blender/nodes/intern/TEX_util.c
+++ b/source/blender/nodes/intern/TEX_util.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/TEX_util.h b/source/blender/nodes/intern/TEX_util.h
index 4caee223a1e..152b01979ba 100644
--- a/source/blender/nodes/intern/TEX_util.h
+++ b/source/blender/nodes/intern/TEX_util.h
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/nodes/intern/node_util.c b/source/blender/nodes/intern/node_util.c
index baf0fc17bf7..cf0be3fd53a 100644
--- a/source/blender/nodes/intern/node_util.c
+++ b/source/blender/nodes/intern/node_util.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/nodes/intern/node_util.h b/source/blender/nodes/intern/node_util.h
index c41ce3025ba..44a82d81d30 100644
--- a/source/blender/nodes/intern/node_util.h
+++ b/source/blender/nodes/intern/node_util.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/BPY_extern.h b/source/blender/python/BPY_extern.h
index e559f0bf57b..f4899849702 100644
--- a/source/blender/python/BPY_extern.h
+++ b/source/blender/python/BPY_extern.h
@@ -27,6 +27,12 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file BPY_extern.h
+ * \ingroup python
+ */
+
+
+
#ifndef BPY_EXTERN_H
#define BPY_EXTERN_H
@@ -72,7 +78,7 @@ void BPY_python_end( void );
/* 2.5 UI Scripts */
int BPY_filepath_exec(struct bContext *C, const char *filepath, struct ReportList *reports);
-int BPY_text_exec(struct bContext *C, struct Text *text, struct ReportList *reports);
+int BPY_text_exec(struct bContext *C, struct Text *text, struct ReportList *reports, const short do_jump);
void BPY_text_free_code(struct Text *text);
void BPY_modules_update(struct bContext *C); // XXX - annoying, need this for pointers that get out of date
void BPY_modules_load_user(struct bContext *C);
diff --git a/source/blender/python/generic/CMakeLists.txt b/source/blender/python/generic/CMakeLists.txt
index b3dec148e9d..0ea478adbf6 100644
--- a/source/blender/python/generic/CMakeLists.txt
+++ b/source/blender/python/generic/CMakeLists.txt
@@ -23,6 +23,7 @@ set(INC
../../blenlib
../../makesdna
../../blenkernel
+ ../../blenloader
../../../../intern/guardedalloc
../../../../extern/glew/include
${PYTHON_INCLUDE_DIRS}
diff --git a/source/blender/python/generic/IDProp.c b/source/blender/python/generic/IDProp.c
index 8004af95050..a83359c31f7 100644
--- a/source/blender/python/generic/IDProp.c
+++ b/source/blender/python/generic/IDProp.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -115,6 +115,7 @@ PyObject *BPy_IDGroup_WrapData( ID *id, IDProperty *prop )
Py_RETURN_NONE;
}
+#if 0 /* UNUSED, currenly assignment overwrites into new properties, rather then setting in-place */
static int BPy_IDGroup_SetData(BPy_IDProperty *self, IDProperty *prop, PyObject *value)
{
switch (prop->type) {
@@ -183,6 +184,7 @@ static int BPy_IDGroup_SetData(BPy_IDProperty *self, IDProperty *prop, PyObject
}
return 0;
}
+#endif
static PyObject *BPy_IDGroup_GetName(BPy_IDProperty *self, void *UNUSED(closure))
{
diff --git a/source/blender/python/generic/IDProp.h b/source/blender/python/generic/IDProp.h
index b0a3b894f08..2b2afb3f792 100644
--- a/source/blender/python/generic/IDProp.h
+++ b/source/blender/python/generic/IDProp.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/generic/blf_py_api.c b/source/blender/python/generic/blf_py_api.c
index 01fa402bd6f..a32e40133bd 100644
--- a/source/blender/python/generic/blf_py_api.c
+++ b/source/blender/python/generic/blf_py_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/generic/blf_py_api.h b/source/blender/python/generic/blf_py_api.h
index db17f62337b..316bad3a4c9 100644
--- a/source/blender/python/generic/blf_py_api.h
+++ b/source/blender/python/generic/blf_py_api.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/generic/mathutils.c b/source/blender/python/generic/mathutils.c
index 1f802edcdea..b925dfc0d32 100644
--- a/source/blender/python/generic/mathutils.c
+++ b/source/blender/python/generic/mathutils.c
@@ -325,13 +325,27 @@ PyObject *BaseMathObject_getWrapped(BaseMathObject *self, void *UNUSED(closure))
return PyBool_FromLong((self->wrapped == Py_WRAP) ? 1:0);
}
-void BaseMathObject_dealloc(BaseMathObject * self)
+int BaseMathObject_traverse(BaseMathObject *self, visitproc visit, void *arg)
+{
+ Py_VISIT(self->cb_user);
+ return 0;
+}
+
+int BaseMathObject_clear(BaseMathObject *self)
+{
+ Py_CLEAR(self->cb_user);
+ return 0;
+}
+
+void BaseMathObject_dealloc(BaseMathObject *self)
{
/* only free non wrapped */
- if(self->wrapped != Py_WRAP)
+ if(self->wrapped != Py_WRAP) {
PyMem_Free(self->data);
+ }
+
+ BaseMathObject_clear(self);
- Py_XDECREF(self->cb_user);
Py_TYPE(self)->tp_free(self); // PyObject_DEL(self); // breaks subtypes
}
diff --git a/source/blender/python/generic/mathutils.h b/source/blender/python/generic/mathutils.h
index 8442b66a1db..7d0644b3c76 100644
--- a/source/blender/python/generic/mathutils.h
+++ b/source/blender/python/generic/mathutils.h
@@ -57,6 +57,9 @@ typedef struct {
PyObject *BaseMathObject_getOwner( BaseMathObject * self, void * );
PyObject *BaseMathObject_getWrapped( BaseMathObject *self, void * );
+
+int BaseMathObject_traverse(BaseMathObject *self, visitproc visit, void *arg);
+int BaseMathObject_clear(BaseMathObject *self);
void BaseMathObject_dealloc(BaseMathObject * self);
PyMODINIT_FUNC BPyInit_mathutils(void);
diff --git a/source/blender/python/generic/mathutils_Color.c b/source/blender/python/generic/mathutils_Color.c
index 1c870ead438..047bda1b2c5 100644
--- a/source/blender/python/generic/mathutils_Color.c
+++ b/source/blender/python/generic/mathutils_Color.c
@@ -475,10 +475,10 @@ PyTypeObject color_Type = {
NULL, //tp_getattro
NULL, //tp_setattro
NULL, //tp_as_buffer
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, //tp_flags
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, //tp_flags
color_doc, //tp_doc
- NULL, //tp_traverse
- NULL, //tp_clear
+ (traverseproc)BaseMathObject_traverse, //tp_traverse
+ (inquiry)BaseMathObject_clear, //tp_clear
(richcmpfunc)Color_richcmpr, //tp_richcompare
0, //tp_weaklistoffset
NULL, //tp_iter
@@ -513,28 +513,31 @@ PyObject *newColorObject(float *col, int type, PyTypeObject *base_type)
{
ColorObject *self;
- if(base_type) self = (ColorObject *)base_type->tp_alloc(base_type, 0);
- else self = PyObject_NEW(ColorObject, &color_Type);
+ self= base_type ? (ColorObject *)base_type->tp_alloc(base_type, 0) :
+ (ColorObject *)PyObject_GC_New(ColorObject, &color_Type);
- /* init callbacks as NULL */
- self->cb_user= NULL;
- self->cb_type= self->cb_subtype= 0;
+ if(self) {
+ /* init callbacks as NULL */
+ self->cb_user= NULL;
+ self->cb_type= self->cb_subtype= 0;
- if(type == Py_WRAP){
- self->col = col;
- self->wrapped = Py_WRAP;
- }
- else if (type == Py_NEW){
- self->col = PyMem_Malloc(COLOR_SIZE * sizeof(float));
- if(col)
- copy_v3_v3(self->col, col);
- else
- zero_v3(self->col);
-
- self->wrapped = Py_NEW;
- }
- else {
- return NULL;
+ if(type == Py_WRAP){
+ self->col = col;
+ self->wrapped = Py_WRAP;
+ }
+ else if (type == Py_NEW){
+ self->col = PyMem_Malloc(COLOR_SIZE * sizeof(float));
+ if(col)
+ copy_v3_v3(self->col, col);
+ else
+ zero_v3(self->col);
+
+ self->wrapped = Py_NEW;
+ }
+ else {
+ PyErr_SetString(PyExc_RuntimeError, "Color(): invalid type");
+ return NULL;
+ }
}
return (PyObject *)self;
diff --git a/source/blender/python/generic/mathutils_Euler.c b/source/blender/python/generic/mathutils_Euler.c
index dd48df63e25..95e7483d7be 100644
--- a/source/blender/python/generic/mathutils_Euler.c
+++ b/source/blender/python/generic/mathutils_Euler.c
@@ -608,10 +608,10 @@ PyTypeObject euler_Type = {
NULL, //tp_getattro
NULL, //tp_setattro
NULL, //tp_as_buffer
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, //tp_flags
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, //tp_flags
euler_doc, //tp_doc
- NULL, //tp_traverse
- NULL, //tp_clear
+ (traverseproc)BaseMathObject_traverse, //tp_traverse
+ (inquiry)BaseMathObject_clear, //tp_clear
(richcmpfunc)Euler_richcmpr, //tp_richcompare
0, //tp_weaklistoffset
NULL, //tp_iter
@@ -646,31 +646,37 @@ PyObject *newEulerObject(float *eul, short order, int type, PyTypeObject *base_t
{
EulerObject *self;
- if(base_type) self = (EulerObject *)base_type->tp_alloc(base_type, 0);
- else self = PyObject_NEW(EulerObject, &euler_Type);
+ self= base_type ? (EulerObject *)base_type->tp_alloc(base_type, 0) :
+ (EulerObject *)PyObject_GC_New(EulerObject, &euler_Type);
- /* init callbacks as NULL */
- self->cb_user= NULL;
- self->cb_type= self->cb_subtype= 0;
+ if(self) {
+ /* init callbacks as NULL */
+ self->cb_user= NULL;
+ self->cb_type= self->cb_subtype= 0;
- if(type == Py_WRAP) {
- self->eul = eul;
- self->wrapped = Py_WRAP;
- }
- else if (type == Py_NEW){
- self->eul = PyMem_Malloc(EULER_SIZE * sizeof(float));
- if(eul)
- copy_v3_v3(self->eul, eul);
- else
- zero_v3(self->eul);
-
- self->wrapped = Py_NEW;
- }
- else{
- return NULL;
+ if(type == Py_WRAP) {
+ self->eul = eul;
+ self->wrapped = Py_WRAP;
+ }
+ else if (type == Py_NEW) {
+ self->eul = PyMem_Malloc(EULER_SIZE * sizeof(float));
+ if(eul) {
+ copy_v3_v3(self->eul, eul);
+ }
+ else {
+ zero_v3(self->eul);
+ }
+
+ self->wrapped = Py_NEW;
+ }
+ else {
+ PyErr_SetString(PyExc_RuntimeError, "Euler(): invalid type");
+ return NULL;
+ }
+
+ self->order= order;
}
- self->order= order;
return (PyObject *)self;
}
diff --git a/source/blender/python/generic/mathutils_Matrix.c b/source/blender/python/generic/mathutils_Matrix.c
index 87979af61b7..07d4dc880c2 100644
--- a/source/blender/python/generic/mathutils_Matrix.c
+++ b/source/blender/python/generic/mathutils_Matrix.c
@@ -1775,10 +1775,10 @@ PyTypeObject matrix_Type = {
NULL, /*tp_getattro*/
NULL, /*tp_setattro*/
NULL, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /*tp_flags*/
matrix_doc, /*tp_doc*/
- NULL, /*tp_traverse*/
- NULL, /*tp_clear*/
+ (traverseproc)BaseMathObject_traverse, //tp_traverse
+ (inquiry)BaseMathObject_clear, //tp_clear
(richcmpfunc)Matrix_richcmpr, /*tp_richcompare*/
0, /*tp_weaklistoffset*/
NULL, /*tp_iter*/
@@ -1826,52 +1826,58 @@ PyObject *newMatrixObject(float *mat, const unsigned short rowSize, const unsign
int x, row, col;
/*matrix objects can be any 2-4row x 2-4col matrix*/
- if(rowSize < 2 || rowSize > 4 || colSize < 2 || colSize > 4){
+ if(rowSize < 2 || rowSize > 4 || colSize < 2 || colSize > 4) {
PyErr_SetString(PyExc_RuntimeError, "matrix(): row and column sizes must be between 2 and 4");
return NULL;
}
- if(base_type) self = (MatrixObject *)base_type->tp_alloc(base_type, 0);
- else self = PyObject_NEW(MatrixObject, &matrix_Type);
+ self= base_type ? (MatrixObject *)base_type->tp_alloc(base_type, 0) :
+ (MatrixObject *)PyObject_GC_New(MatrixObject, &matrix_Type);
- self->row_size = rowSize;
- self->col_size = colSize;
-
- /* init callbacks as NULL */
- self->cb_user= NULL;
- self->cb_type= self->cb_subtype= 0;
-
- if(type == Py_WRAP){
- self->contigPtr = mat;
- /*pointer array points to contigous memory*/
- for(x = 0; x < rowSize; x++) {
- self->matrix[x] = self->contigPtr + (x * colSize);
- }
- self->wrapped = Py_WRAP;
- }else if (type == Py_NEW){
- self->contigPtr = PyMem_Malloc(rowSize * colSize * sizeof(float));
- if(self->contigPtr == NULL) { /*allocation failure*/
- PyErr_SetString(PyExc_MemoryError, "matrix(): problem allocating pointer space");
- return NULL;
- }
- /*pointer array points to contigous memory*/
- for(x = 0; x < rowSize; x++) {
- self->matrix[x] = self->contigPtr + (x * colSize);
+ if(self) {
+ self->row_size = rowSize;
+ self->col_size = colSize;
+
+ /* init callbacks as NULL */
+ self->cb_user= NULL;
+ self->cb_type= self->cb_subtype= 0;
+
+ if(type == Py_WRAP){
+ self->contigPtr = mat;
+ /*pointer array points to contigous memory*/
+ for(x = 0; x < rowSize; x++) {
+ self->matrix[x] = self->contigPtr + (x * colSize);
+ }
+ self->wrapped = Py_WRAP;
}
- /*parse*/
- if(mat) { /*if a float array passed*/
- for(row = 0; row < rowSize; row++) {
- for(col = 0; col < colSize; col++) {
- self->matrix[row][col] = mat[(row * colSize) + col];
+ else if (type == Py_NEW){
+ self->contigPtr = PyMem_Malloc(rowSize * colSize * sizeof(float));
+ if(self->contigPtr == NULL) { /*allocation failure*/
+ PyErr_SetString(PyExc_MemoryError, "matrix(): problem allocating pointer space");
+ return NULL;
+ }
+ /*pointer array points to contigous memory*/
+ for(x = 0; x < rowSize; x++) {
+ self->matrix[x] = self->contigPtr + (x * colSize);
+ }
+ /*parse*/
+ if(mat) { /*if a float array passed*/
+ for(row = 0; row < rowSize; row++) {
+ for(col = 0; col < colSize; col++) {
+ self->matrix[row][col] = mat[(row * colSize) + col];
+ }
}
}
- } else if (rowSize == colSize ) { /*or if no arguments are passed return identity matrix for square matrices */
- PyObject *ret_dummy= Matrix_identity(self);
- Py_DECREF(ret_dummy);
+ else if (rowSize == colSize ) { /*or if no arguments are passed return identity matrix for square matrices */
+ PyObject *ret_dummy= Matrix_identity(self);
+ Py_DECREF(ret_dummy);
+ }
+ self->wrapped = Py_NEW;
+ }
+ else {
+ PyErr_SetString(PyExc_RuntimeError, "Matrix(): invalid type");
+ return NULL;
}
- self->wrapped = Py_NEW;
- }else{ /*bad type*/
- return NULL;
}
return (PyObject *) self;
}
diff --git a/source/blender/python/generic/mathutils_Quaternion.c b/source/blender/python/generic/mathutils_Quaternion.c
index 08b813ade16..42c295c0d7e 100644
--- a/source/blender/python/generic/mathutils_Quaternion.c
+++ b/source/blender/python/generic/mathutils_Quaternion.c
@@ -1044,10 +1044,10 @@ PyTypeObject quaternion_Type = {
NULL, //tp_getattro
NULL, //tp_setattro
NULL, //tp_as_buffer
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, //tp_flags
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, //tp_flags
quaternion_doc, //tp_doc
- NULL, //tp_traverse
- NULL, //tp_clear
+ (traverseproc)BaseMathObject_traverse, //tp_traverse
+ (inquiry)BaseMathObject_clear, //tp_clear
(richcmpfunc)Quaternion_richcmpr, //tp_richcompare
0, //tp_weaklistoffset
NULL, //tp_iter
@@ -1082,26 +1082,31 @@ PyObject *newQuaternionObject(float *quat, int type, PyTypeObject *base_type)
{
QuaternionObject *self;
- if(base_type) self = (QuaternionObject *)base_type->tp_alloc(base_type, 0);
- else self = PyObject_NEW(QuaternionObject, &quaternion_Type);
-
- /* init callbacks as NULL */
- self->cb_user= NULL;
- self->cb_type= self->cb_subtype= 0;
-
- if(type == Py_WRAP){
- self->quat = quat;
- self->wrapped = Py_WRAP;
- }else if (type == Py_NEW){
- self->quat = PyMem_Malloc(QUAT_SIZE * sizeof(float));
- if(!quat) { //new empty
- unit_qt(self->quat);
- }else{
- QUATCOPY(self->quat, quat);
+ self= base_type ? (QuaternionObject *)base_type->tp_alloc(base_type, 0) :
+ (QuaternionObject *)PyObject_GC_New(QuaternionObject, &quaternion_Type);
+
+ if(self) {
+ /* init callbacks as NULL */
+ self->cb_user= NULL;
+ self->cb_type= self->cb_subtype= 0;
+
+ if(type == Py_WRAP){
+ self->quat = quat;
+ self->wrapped = Py_WRAP;
+ }
+ else if (type == Py_NEW){
+ self->quat = PyMem_Malloc(QUAT_SIZE * sizeof(float));
+ if(!quat) { //new empty
+ unit_qt(self->quat);
+ }else{
+ QUATCOPY(self->quat, quat);
+ }
+ self->wrapped = Py_NEW;
+ }
+ else{
+ PyErr_SetString(PyExc_RuntimeError, "Quaternion(): invalid type");
+ return NULL;
}
- self->wrapped = Py_NEW;
- }else{ //bad type
- return NULL;
}
return (PyObject *) self;
}
diff --git a/source/blender/python/generic/mathutils_Vector.c b/source/blender/python/generic/mathutils_Vector.c
index 0efd805697f..9408a61a368 100644
--- a/source/blender/python/generic/mathutils_Vector.c
+++ b/source/blender/python/generic/mathutils_Vector.c
@@ -2162,14 +2162,15 @@ PyTypeObject vector_Type = {
NULL, /* PyBufferProcs *tp_as_buffer; */
/*** Flags to define presence of optional/expanded features ***/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC,
vector_doc, /* char *tp_doc; Documentation string */
/*** Assigned meaning in release 2.0 ***/
+
/* call function for all accessible objects */
- NULL, /* traverseproc tp_traverse; */
+ (traverseproc)BaseMathObject_traverse, //tp_traverse
/* delete references to contained objects */
- NULL, /* inquiry tp_clear; */
+ (inquiry)BaseMathObject_clear, //tp_clear
/*** Assigned meaning in release 2.1 ***/
/*** rich comparisons ***/
@@ -2218,35 +2219,42 @@ PyObject *newVectorObject(float *vec, const int size, const int type, PyTypeObje
{
VectorObject *self;
- if(size > 4 || size < 2)
+ if(size > 4 || size < 2) {
+ PyErr_SetString(PyExc_RuntimeError, "Vector(): invalid size");
return NULL;
+ }
- if(base_type) self = (VectorObject *)base_type->tp_alloc(base_type, 0);
- else self = PyObject_NEW(VectorObject, &vector_Type);
+ self= base_type ? (VectorObject *)base_type->tp_alloc(base_type, 0) :
+ (VectorObject *)PyObject_GC_New(VectorObject, &vector_Type);
- self->size = size;
-
- /* init callbacks as NULL */
- self->cb_user= NULL;
- self->cb_type= self->cb_subtype= 0;
-
- if(type == Py_WRAP) {
- self->vec = vec;
- self->wrapped = Py_WRAP;
- } else if (type == Py_NEW) {
- self->vec= PyMem_Malloc(size * sizeof(float));
- if(vec) {
- memcpy(self->vec, vec, size * sizeof(float));
+ if(self) {
+ self->size = size;
+
+ /* init callbacks as NULL */
+ self->cb_user= NULL;
+ self->cb_type= self->cb_subtype= 0;
+
+ if(type == Py_WRAP) {
+ self->vec = vec;
+ self->wrapped = Py_WRAP;
}
- else { /* new empty */
- fill_vn(self->vec, size, 0.0f);
- if(size == 4) { /* do the homogenous thing */
- self->vec[3] = 1.0f;
+ else if (type == Py_NEW) {
+ self->vec= PyMem_Malloc(size * sizeof(float));
+ if(vec) {
+ memcpy(self->vec, vec, size * sizeof(float));
}
+ else { /* new empty */
+ fill_vn(self->vec, size, 0.0f);
+ if(size == 4) { /* do the homogenous thing */
+ self->vec[3] = 1.0f;
+ }
+ }
+ self->wrapped = Py_NEW;
+ }
+ else {
+ PyErr_SetString(PyExc_RuntimeError, "Vector(): invalid type");
+ return NULL;
}
- self->wrapped = Py_NEW;
- }else{ /*bad type*/
- return NULL;
}
return (PyObject *) self;
}
diff --git a/source/blender/python/generic/noise_py_api.c b/source/blender/python/generic/noise_py_api.c
index 73818971564..f4c662f3170 100644
--- a/source/blender/python/generic/noise_py_api.c
+++ b/source/blender/python/generic/noise_py_api.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* Blender.Noise BPython module implementation.
diff --git a/source/blender/python/generic/noise_py_api.h b/source/blender/python/generic/noise_py_api.h
index eaaddabeb9e..0a1bc09157b 100644
--- a/source/blender/python/generic/noise_py_api.h
+++ b/source/blender/python/generic/noise_py_api.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/generic/py_capi_utils.c b/source/blender/python/generic/py_capi_utils.c
index e8618883874..e8315938748 100644
--- a/source/blender/python/generic/py_capi_utils.c
+++ b/source/blender/python/generic/py_capi_utils.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -21,6 +21,7 @@
*/
#include <Python.h>
+#include <frameobject.h>
#include "py_capi_utils.h"
@@ -54,39 +55,34 @@ void PyC_LineSpit(void) {
fprintf(stderr, "%s:%d\n", filename, lineno);
}
+/* python 3.2 only, copied from frameobjec.c */
+#if PY_VERSION_HEX < 0x03020000
+int
+PyFrame_GetLineNumber(PyFrameObject *f)
+{
+ if (f->f_trace)
+ return f->f_lineno;
+ else
+ return PyCode_Addr2Line(f->f_code, f->f_lasti);
+}
+#endif
+
void PyC_FileAndNum(const char **filename, int *lineno)
{
- PyObject *getframe, *frame;
- PyObject *f_lineno= NULL, *co_filename= NULL;
+ PyFrameObject *frame;
if (filename) *filename= NULL;
if (lineno) *lineno = -1;
-
- getframe = PySys_GetObject("_getframe"); // borrowed
- if (getframe==NULL) {
- PyErr_Clear();
- return;
- }
-
- frame = PyObject_CallObject(getframe, NULL);
- if (frame==NULL) {
- PyErr_Clear();
+
+ if (!(frame= PyThreadState_GET()->frame)) {
return;
}
-
+
/* when executing a script */
if (filename) {
- co_filename= PyC_Object_GetAttrStringArgs(frame, 2, "f_code", "co_filename");
- if (co_filename==NULL) {
- PyErr_SetString(PyExc_RuntimeError, "Could not access sys._getframe().f_code.co_filename");
- Py_DECREF(frame);
- return;
- }
-
- *filename = _PyUnicode_AsString(co_filename);
- Py_DECREF(co_filename);
+ *filename = _PyUnicode_AsString(frame->f_code->co_filename);
}
-
+
/* when executing a module */
if(filename && *filename == NULL) {
/* try an alternative method to get the filename - module based
@@ -104,21 +100,10 @@ void PyC_FileAndNum(const char **filename, int *lineno)
}
}
}
-
-
+
if (lineno) {
- f_lineno= PyObject_GetAttrString(frame, "f_lineno");
- if (f_lineno==NULL) {
- PyErr_SetString(PyExc_RuntimeError, "Could not access sys._getframe().f_lineno");
- Py_DECREF(frame);
- return;
- }
-
- *lineno = (int)PyLong_AsSsize_t(f_lineno);
- Py_DECREF(f_lineno);
+ *lineno = PyFrame_GetLineNumber(frame);
}
-
- Py_DECREF(frame);
}
/* Would be nice if python had this built in */
diff --git a/source/blender/python/generic/py_capi_utils.h b/source/blender/python/generic/py_capi_utils.h
index ccdbde5cecb..8d16068441a 100644
--- a/source/blender/python/generic/py_capi_utils.h
+++ b/source/blender/python/generic/py_capi_utils.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt
index 970c5ee3012..c4666304158 100644
--- a/source/blender/python/intern/CMakeLists.txt
+++ b/source/blender/python/intern/CMakeLists.txt
@@ -29,6 +29,7 @@ set(INC
../../makesdna
../../makesrna
../../blenkernel
+ ../../blenloader
../../windowmanager
../../editors/include
../../freestyle/intern/python
@@ -48,6 +49,7 @@ set(SRC
bpy_rna.c
bpy_rna_array.c
bpy_rna_callback.c
+ bpy_traceback.c
bpy_util.c
stubs.c
@@ -59,6 +61,7 @@ set(SRC
bpy_props.h
bpy_rna.h
bpy_rna_callback.h
+ bpy_traceback.h
bpy_util.h
../BPY_extern.h
)
@@ -68,4 +71,8 @@ if(WITH_BUILDINFO)
add_definitions(-DBUILD_DATE)
endif()
+if(WITH_PYTHON_MODULE)
+ add_definitions(-DWITH_PYTHON_MODULE)
+endif()
+
blender_add_lib(bf_python "${SRC}" "${INC}")
diff --git a/source/blender/python/intern/bpy.c b/source/blender/python/intern/bpy.c
index 450c4ec6962..f2fd41f4252 100644
--- a/source/blender/python/intern/bpy.c
+++ b/source/blender/python/intern/bpy.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -55,6 +55,8 @@
#include "BPy_Freestyle.h"
+PyObject *bpy_package_py= NULL;
+
static char bpy_script_paths_doc[] =
".. function:: script_paths()\n"
"\n"
@@ -163,7 +165,7 @@ static PyMethodDef meth_bpy_script_paths = {"script_paths", (PyCFunction)bpy_scr
static PyMethodDef meth_bpy_blend_paths = {"blend_paths", (PyCFunction)bpy_blend_paths, METH_VARARGS|METH_KEYWORDS, bpy_blend_paths_doc};
static PyMethodDef meth_bpy_user_resource = {"user_resource", (PyCFunction)bpy_user_resource, METH_VARARGS|METH_KEYWORDS, NULL};
-static void bpy_import_test(const char *modname)
+static PyObject *bpy_import_test(const char *modname)
{
PyObject *mod= PyImport_ImportModuleLevel((char *)modname, NULL, NULL, NULL, 0);
if(mod) {
@@ -173,6 +175,8 @@ static void bpy_import_test(const char *modname)
PyErr_Print();
PyErr_Clear();
}
+
+ return mod;
}
/*****************************************************************************
@@ -238,5 +242,5 @@ void BPy_init_modules( void )
PyModule_AddObject(mod, meth_bpy_unregister_class.ml_name, (PyObject *)PyCFunction_New(&meth_bpy_unregister_class, NULL));
/* add our own modules dir, this is a python package */
- bpy_import_test("bpy");
+ bpy_package_py= bpy_import_test("bpy");
}
diff --git a/source/blender/python/intern/bpy.h b/source/blender/python/intern/bpy.h
index 76eef6ea4b9..e3064fe3ca1 100644
--- a/source/blender/python/intern/bpy.h
+++ b/source/blender/python/intern/bpy.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,4 +22,4 @@
* ***** END GPL LICENSE BLOCK ***** */
void BPy_init_modules( void );
-
+extern PyObject *bpy_package_py;
diff --git a/source/blender/python/intern/bpy_app.c b/source/blender/python/intern/bpy_app.c
index bc7e981df98..e58afe8eace 100644
--- a/source/blender/python/intern/bpy_app.c
+++ b/source/blender/python/intern/bpy_app.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/intern/bpy_app.h b/source/blender/python/intern/bpy_app.h
index cb71880ee7e..cf19218f0b0 100644
--- a/source/blender/python/intern/bpy_app.h
+++ b/source/blender/python/intern/bpy_app.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c
index 2b49f78929a..7072fbc09a7 100644
--- a/source/blender/python/intern/bpy_driver.c
+++ b/source/blender/python/intern/bpy_driver.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/intern/bpy_driver.h b/source/blender/python/intern/bpy_driver.h
index 27a077248fa..3e7cd68eef0 100644
--- a/source/blender/python/intern/bpy_driver.h
+++ b/source/blender/python/intern/bpy_driver.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c
index 4ae1b41bb89..60ada6e983b 100644
--- a/source/blender/python/intern/bpy_interface.c
+++ b/source/blender/python/intern/bpy_interface.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -35,6 +35,7 @@
#include "bpy.h"
#include "bpy_rna.h"
#include "bpy_util.h"
+#include "bpy_traceback.h"
#include "DNA_space_types.h"
#include "DNA_text_types.h"
@@ -157,6 +158,7 @@ void BPY_modules_update(bContext *C)
}
/* must be called before Py_Initialize */
+#ifndef WITH_PYTHON_MODULE
static void bpy_python_start_path(void)
{
char *py_path_bundle= BLI_get_folder(BLENDER_PYTHON, NULL);
@@ -195,8 +197,7 @@ static void bpy_python_start_path(void)
// printf("found python (wchar_t) '%ls'\n", py_path_bundle_wchar);
}
}
-
-
+#endif
void BPY_context_set(bContext *C)
{
@@ -219,8 +220,9 @@ static struct _inittab bpy_internal_modules[]= {
/* call BPY_context_set first */
void BPY_python_start(int argc, const char **argv)
{
+#ifndef WITH_PYTHON_MODULE
PyThreadState *py_tstate = NULL;
-
+
/* not essential but nice to set our name */
static wchar_t bprogname_wchar[FILE_MAXDIR+FILE_MAXFILE]; /* python holds a reference */
utf8towchar(bprogname_wchar, bprogname);
@@ -252,8 +254,13 @@ void BPY_python_start(int argc, const char **argv)
/* Initialize thread support (also acquires lock) */
PyEval_InitThreads();
+#else
+ (void)argc;
+ (void)argv;
-
+ PyImport_ExtendInittab(bpy_internal_modules);
+#endif
+
/* bpy.* and lets us import it */
BPy_init_modules();
@@ -281,8 +288,10 @@ void BPY_python_start(int argc, const char **argv)
pyrna_alloc_types();
+#ifndef WITH_PYTHON_MODULE
py_tstate = PyGILState_GetThisThreadState();
PyEval_ReleaseThread(py_tstate);
+#endif
}
void BPY_python_end(void)
@@ -319,6 +328,18 @@ void BPY_python_end(void)
}
+static void python_script_error_jump_text(struct Text *text)
+{
+ int lineno;
+ int offset;
+ python_script_error_jump(text->id.name+2, &lineno, &offset);
+ if(lineno != -1) {
+ /* select the line with the error */
+ txt_move_to(text, lineno - 1, INT_MAX, FALSE);
+ txt_move_to(text, lineno - 1, offset, TRUE);
+ }
+}
+
/* super annoying, undo _PyModule_Clear(), bug [#23871] */
#define PYMODULE_CLEAR_WORKAROUND
@@ -332,7 +353,7 @@ typedef struct {
} PyModuleObject;
#endif
-static int python_script_exec(bContext *C, const char *fn, struct Text *text, struct ReportList *reports)
+static int python_script_exec(bContext *C, const char *fn, struct Text *text, struct ReportList *reports, const short do_jump)
{
PyObject *main_mod= NULL;
PyObject *py_dict= NULL, *py_result= NULL;
@@ -361,6 +382,9 @@ static int python_script_exec(bContext *C, const char *fn, struct Text *text, st
MEM_freeN( buf );
if(PyErr_Occurred()) {
+ if(do_jump) {
+ python_script_error_jump_text(text);
+ }
BPY_text_free_code(text);
}
}
@@ -406,6 +430,11 @@ static int python_script_exec(bContext *C, const char *fn, struct Text *text, st
}
if (!py_result) {
+ if(text) {
+ if(do_jump) {
+ python_script_error_jump_text(text);
+ }
+ }
BPy_errors_to_report(reports);
} else {
Py_DECREF( py_result );
@@ -434,13 +463,13 @@ static int python_script_exec(bContext *C, const char *fn, struct Text *text, st
/* Can run a file or text block */
int BPY_filepath_exec(bContext *C, const char *filepath, struct ReportList *reports)
{
- return python_script_exec(C, filepath, NULL, reports);
+ return python_script_exec(C, filepath, NULL, reports, FALSE);
}
-int BPY_text_exec(bContext *C, struct Text *text, struct ReportList *reports)
+int BPY_text_exec(bContext *C, struct Text *text, struct ReportList *reports, const short do_jump)
{
- return python_script_exec(C, NULL, text, reports);
+ return python_script_exec(C, NULL, text, reports, do_jump);
}
void BPY_DECREF(void *pyob_ptr)
@@ -659,3 +688,102 @@ int BPY_context_member_get(bContext *C, const char *member, bContextDataResult *
return done;
}
+
+#ifdef WITH_PYTHON_MODULE
+#include "BLI_storage.h"
+/* TODO, reloading the module isnt functional at the moment. */
+
+extern int main_python(int argc, const char **argv);
+static struct PyModuleDef bpy_proxy_def = {
+ PyModuleDef_HEAD_INIT,
+ "bpy", /* m_name */
+ NULL, /* m_doc */
+ 0, /* m_size */
+ NULL, /* m_methods */
+ NULL, /* m_reload */
+ NULL, /* m_traverse */
+ NULL, /* m_clear */
+ NULL, /* m_free */
+};
+
+typedef struct {
+ PyObject_HEAD
+ /* Type-specific fields go here. */
+ PyObject *mod;
+} dealloc_obj;
+
+/* call once __file__ is set */
+void bpy_module_delay_init(PyObject *bpy_proxy)
+{
+ const int argc= 1;
+ const char *argv[2];
+
+ const char *filename_rel= PyModule_GetFilename(bpy_proxy); /* can be relative */
+ char filename_abs[1024];
+
+ BLI_strncpy(filename_abs, filename_rel, sizeof(filename_abs));
+ BLI_path_cwd(filename_abs);
+
+ argv[0]= filename_abs;
+ argv[1]= NULL;
+
+ // printf("module found %s\n", argv[0]);
+
+ main_python(argc, argv);
+
+ /* initialized in BPy_init_modules() */
+ PyDict_Update(PyModule_GetDict(bpy_proxy), PyModule_GetDict(bpy_package_py));
+}
+
+static void dealloc_obj_dealloc(PyObject *self);
+
+static PyTypeObject dealloc_obj_Type = {{{0}}};
+
+/* use our own dealloc so we can free a property if we use one */
+static void dealloc_obj_dealloc(PyObject *self)
+{
+ bpy_module_delay_init(((dealloc_obj *)self)->mod);
+
+ /* Note, for subclassed PyObjects we cant just call PyObject_DEL() directly or it will crash */
+ dealloc_obj_Type.tp_free(self);
+}
+
+PyMODINIT_FUNC
+PyInit_bpy(void)
+{
+ PyObject *bpy_proxy= PyModule_Create(&bpy_proxy_def);
+
+ /* Problem:
+ * 1) this init function is expected to have a private member defined - 'md_def'
+ * but this is only set for C defined modules (not py packages)
+ * so we cant return 'bpy_package_py' as is.
+ *
+ * 2) there is a 'bpy' C module for python to load which is basically all of blender,
+ * and there is scripts/bpy/__init__.py,
+ * we may end up having to rename this module so there is no naming conflict here eg:
+ * 'from blender import bpy'
+ *
+ * 3) we dont know the filename at this point, workaround by assigning a dummy value
+ * which calls back when its freed so the real loading can take place.
+ */
+
+ /* assign an object which is freed after __file__ is assigned */
+ dealloc_obj *dob;
+
+ /* assign dummy type */
+ dealloc_obj_Type.tp_name = "dealloc_obj";
+ dealloc_obj_Type.tp_basicsize = sizeof(dealloc_obj);
+ dealloc_obj_Type.tp_dealloc = dealloc_obj_dealloc;
+ dealloc_obj_Type.tp_flags = Py_TPFLAGS_DEFAULT;
+
+ if(PyType_Ready(&dealloc_obj_Type) < 0)
+ return NULL;
+
+ dob= (dealloc_obj *) dealloc_obj_Type.tp_alloc(&dealloc_obj_Type, 0);
+ dob->mod= bpy_proxy; /* borrow */
+ PyModule_AddObject(bpy_proxy, "__file__", (PyObject *)dob); /* borrow */
+
+ return bpy_proxy;
+}
+
+#endif
diff --git a/source/blender/python/intern/bpy_operator.h b/source/blender/python/intern/bpy_operator.h
index f45f91dbe1f..a8bf8436e83 100644
--- a/source/blender/python/intern/bpy_operator.h
+++ b/source/blender/python/intern/bpy_operator.h
@@ -1,5 +1,4 @@
-
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/intern/bpy_operator_wrap.h b/source/blender/python/intern/bpy_operator_wrap.h
index 919e82059b7..599a42f7bd8 100644
--- a/source/blender/python/intern/bpy_operator_wrap.h
+++ b/source/blender/python/intern/bpy_operator_wrap.h
@@ -1,5 +1,4 @@
-
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/intern/bpy_props.c b/source/blender/python/intern/bpy_props.c
index 2bdaa5267e1..c8af0d63e3b 100644
--- a/source/blender/python/intern/bpy_props.c
+++ b/source/blender/python/intern/bpy_props.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/intern/bpy_props.h b/source/blender/python/intern/bpy_props.h
index 136dd2b5b2f..828c6719ffc 100644
--- a/source/blender/python/intern/bpy_props.h
+++ b/source/blender/python/intern/bpy_props.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index fa01eefa867..f18b1aee5ab 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -24,6 +24,7 @@
#include <Python.h>
+#include <stddef.h>
#include <float.h> /* FLT_MIN/MAX */
#include "bpy_rna.h"
@@ -655,7 +656,7 @@ static long pyrna_prop_hash(BPy_PropertyRNA *self)
}
/* use our own dealloc so we can free a property if we use one */
-static void pyrna_struct_dealloc( BPy_StructRNA *self )
+static void pyrna_struct_dealloc(BPy_StructRNA *self)
{
if (self->freeptr && self->ptr.data) {
IDP_FreeProperty(self->ptr.data);
@@ -663,9 +664,37 @@ static void pyrna_struct_dealloc( BPy_StructRNA *self )
self->ptr.data= NULL;
}
+#ifdef USE_WEAKREFS
+ if (self->in_weakreflist != NULL) {
+ PyObject_ClearWeakRefs((PyObject *)self);
+ }
+#endif
+
+ /* Note, for subclassed PyObjects we cant just call PyObject_DEL() directly or it will crash */
+ Py_TYPE(self)->tp_free(self);
+}
+
+/* use our own dealloc so we can free a property if we use one */
+static void pyrna_prop_dealloc(BPy_PropertyRNA *self)
+{
+#ifdef USE_WEAKREFS
+ if (self->in_weakreflist != NULL) {
+ PyObject_ClearWeakRefs((PyObject *)self);
+ }
+#endif
+ /* Note, for subclassed PyObjects we cant just call PyObject_DEL() directly or it will crash */
+ Py_TYPE(self)->tp_free(self);
+}
+
+static void pyrna_prop_array_dealloc(BPy_PropertyRNA *self)
+{
+#ifdef USE_WEAKREFS
+ if (self->in_weakreflist != NULL) {
+ PyObject_ClearWeakRefs((PyObject *)self);
+ }
+#endif
/* Note, for subclassed PyObjects we cant just call PyObject_DEL() directly or it will crash */
Py_TYPE(self)->tp_free(self);
- return;
}
static const char *pyrna_enum_as_string(PointerRNA *ptr, PropertyRNA *prop)
@@ -1013,26 +1042,12 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb
if (RNA_property_array_check(ptr, prop)) {
-
- /* char error_str[512]; */
int ok= 1;
-#ifdef USE_MATHUTILS
- if(MatrixObject_Check(value)) {
- MatrixObject *mat = (MatrixObject*)value;
- if(!BaseMath_ReadCallback(mat))
- return -1;
- } else /* continue... */
-#endif // USE_MATHUTILS
- if (!PySequence_Check(value)) {
- PyErr_Format(PyExc_TypeError, "%.200s RNA array assignment to %.200s.%.200s expected a sequence, not %.200s", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), Py_TYPE(value)->tp_name);
- return -1;
- }
/* done getting the length */
ok= pyrna_py_to_array(ptr, prop, data, value, error_prefix);
if (!ok) {
- /* PyErr_Format(PyExc_AttributeError, "%.200s %s", error_prefix, error_str); */
return -1;
}
}
@@ -2246,8 +2261,8 @@ static char pyrna_struct_keyframe_insert_doc[] =
" :arg group: The name of the group the F-Curve should be added to if it doesn't exist yet.\n"
" :type group: str\n"
" :return: Success of keyframe insertion.\n"
-" :rtype: boolean";
-
+" :rtype: boolean\n"
+;
static PyObject *pyrna_struct_keyframe_insert(BPy_StructRNA *self, PyObject *args, PyObject *kw)
{
/* args, pyrna_struct_keyframe_parse handles these */
@@ -2289,8 +2304,8 @@ static char pyrna_struct_keyframe_delete_doc[] =
" :arg group: The name of the group the F-Curve should be added to if it doesn't exist yet.\n"
" :type group: str\n"
" :return: Success of keyframe deleation.\n"
-" :rtype: boolean";
-
+" :rtype: boolean\n"
+;
static PyObject *pyrna_struct_keyframe_delete(BPy_StructRNA *self, PyObject *args, PyObject *kw)
{
/* args, pyrna_struct_keyframe_parse handles these */
@@ -2329,8 +2344,8 @@ static char pyrna_struct_driver_add_doc[] =
" :arg index: array index of the property drive. Defaults to -1 for all indices or a single channel if the property is not an array.\n"
" :type index: int\n"
" :return: The driver(s) added.\n"
-" :rtype: :class:`FCurve` or list if index is -1 with an array property.";
-
+" :rtype: :class:`FCurve` or list if index is -1 with an array property.\n"
+;
static PyObject *pyrna_struct_driver_add(BPy_StructRNA *self, PyObject *args)
{
const char *path, *path_full;
@@ -2401,8 +2416,8 @@ static char pyrna_struct_driver_remove_doc[] =
" :arg index: array index of the property drive. Defaults to -1 for all indices or a single channel if the property is not an array.\n"
" :type index: int\n"
" :return: Success of driver removal.\n"
-" :rtype: boolean";
-
+" :rtype: boolean\n"
+;
static PyObject *pyrna_struct_driver_remove(BPy_StructRNA *self, PyObject *args)
{
const char *path, *path_full;
@@ -2438,8 +2453,8 @@ static char pyrna_struct_is_property_set_doc[] =
" Check if a property is set, use for testing operator properties.\n"
"\n"
" :return: True when the property has been set.\n"
-" :rtype: boolean";
-
+" :rtype: boolean\n"
+;
static PyObject *pyrna_struct_is_property_set(BPy_StructRNA *self, PyObject *args)
{
PropertyRNA *prop;
@@ -2478,8 +2493,8 @@ static char pyrna_struct_is_property_hidden_doc[] =
" Check if a property is hidden.\n"
"\n"
" :return: True when the property is hidden.\n"
-" :rtype: boolean";
-
+" :rtype: boolean\n"
+;
static PyObject *pyrna_struct_is_property_hidden(BPy_StructRNA *self, PyObject *args)
{
PropertyRNA *prop;
@@ -2504,8 +2519,8 @@ static char pyrna_struct_path_resolve_doc[] =
" :arg path: path which this property resolves.\n"
" :type path: string\n"
" :arg coerce: optional argument, when True, the property will be converted into its python representation.\n"
-" :type coerce: boolean\n";
-
+" :type coerce: boolean\n"
+;
static PyObject *pyrna_struct_path_resolve(BPy_StructRNA *self, PyObject *args)
{
const char *path;
@@ -2555,8 +2570,8 @@ static char pyrna_struct_path_from_id_doc[] =
" :arg property: Optional property name which can be used if the path is to a property of this object.\n"
" :type property: string\n"
" :return: The path from :class:`bpy_struct.id_data` to this struct and property (when given).\n"
-" :rtype: str";
-
+" :rtype: str\n"
+;
static PyObject *pyrna_struct_path_from_id(BPy_StructRNA *self, PyObject *args)
{
const char *name= NULL;
@@ -2598,8 +2613,8 @@ static char pyrna_prop_path_from_id_doc[] =
" Returns the data path from the ID to this property (string).\n"
"\n"
" :return: The path from :class:`bpy_struct.id_data` to this property.\n"
-" :rtype: str";
-
+" :rtype: str\n"
+;
static PyObject *pyrna_prop_path_from_id(BPy_PropertyRNA *self)
{
const char *path;
@@ -2625,8 +2640,8 @@ static char pyrna_struct_type_recast_doc[] =
" Return a new instance, this is needed because types such as textures can be changed at runtime.\n"
"\n"
" :return: a new instance of this object with the type initialized again.\n"
-" :rtype: subclass of :class:`bpy_struct`";
-
+" :rtype: subclass of :class:`bpy_struct`\n"
+;
static PyObject *pyrna_struct_type_recast(BPy_StructRNA *self)
{
PointerRNA r_ptr;
@@ -3244,10 +3259,10 @@ static char pyrna_struct_get_doc[] =
" :arg key: The key assosiated with the custom property.\n"
" :type key: string\n"
" :arg default: Optional argument for the value to return if *key* is not found.\n"
-// " :type default: Undefined\n"
+" :type default: Undefined\n"
"\n"
-" .. note:: Only :class:`ID`, :class:`Bone` and :class:`PoseBone` classes support custom properties.\n";
-
+" .. note:: Only :class:`ID`, :class:`Bone` and :class:`PoseBone` classes support custom properties.\n"
+;
static PyObject *pyrna_struct_get(BPy_StructRNA *self, PyObject *args)
{
IDProperty *group, *idprop;
@@ -3283,8 +3298,8 @@ static char pyrna_struct_as_pointer_doc[] =
" :return: int (memory address).\n"
" :rtype: int\n"
"\n"
-" .. note:: This is intended only for advanced script writers who need to pass blender data to their own C/Python modules.\n";
-
+" .. note:: This is intended only for advanced script writers who need to pass blender data to their own C/Python modules.\n"
+;
static PyObject *pyrna_struct_as_pointer(BPy_StructRNA *self)
{
return PyLong_FromVoidPtr(self->ptr.data);
@@ -3937,6 +3952,16 @@ static PyObject * pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw)
return NULL;
}
+ /* for testing */
+ /*
+ {
+ const char *fn;
+ int lineno;
+ PyC_FileAndNum(&fn, &lineno);
+ printf("pyrna_func_call > %.200s.%.200s : %.200s:%d\n", RNA_struct_identifier(self_ptr->type), RNA_function_identifier(self_func), fn, lineno);
+ }
+ */
+
/* include the ID pointer for pyrna_param_to_py() so we can include the
* ID pointer on return values, this only works when returned values have
* the same ID as the functions. */
@@ -4228,10 +4253,10 @@ PyTypeObject pyrna_struct_meta_idprop_Type = {
PyTypeObject pyrna_struct_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
"bpy_struct", /* tp_name */
- sizeof( BPy_StructRNA ), /* tp_basicsize */
+ sizeof(BPy_StructRNA), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
- ( destructor ) pyrna_struct_dealloc,/* tp_dealloc */
+ (destructor) pyrna_struct_dealloc,/* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
@@ -4271,8 +4296,11 @@ PyTypeObject pyrna_struct_Type = {
(richcmpfunc)pyrna_struct_richcmp, /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/
- 0, /* long tp_weaklistoffset; */
-
+#ifdef USE_WEAKREFS
+ offsetof(BPy_StructRNA, in_weakreflist), /* long tp_weaklistoffset; */
+#else
+ 0,
+#endif
/*** Added in release 2.2 ***/
/* Iterators */
NULL, /* getiterfunc tp_iter; */
@@ -4307,11 +4335,11 @@ PyTypeObject pyrna_struct_Type = {
PyTypeObject pyrna_prop_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
"bpy_prop", /* tp_name */
- sizeof( BPy_PropertyRNA ), /* tp_basicsize */
+ sizeof(BPy_PropertyRNA), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
- NULL, /* tp_dealloc */
- NULL, /* printfunc tp_print; */
+ (destructor) pyrna_prop_dealloc, /* tp_dealloc */
+ NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
NULL, /* tp_compare */ /* DEPRECATED in python 3.0! */
@@ -4352,7 +4380,11 @@ PyTypeObject pyrna_prop_Type = {
(richcmpfunc)pyrna_prop_richcmp, /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/
- 0, /* long tp_weaklistoffset; */
+#ifdef USE_WEAKREFS
+ offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */
+#else
+ 0,
+#endif
/*** Added in release 2.2 ***/
/* Iterators */
@@ -4387,10 +4419,10 @@ PyTypeObject pyrna_prop_Type = {
PyTypeObject pyrna_prop_array_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
"bpy_prop_array", /* tp_name */
- sizeof( BPy_PropertyArrayRNA ), /* tp_basicsize */
- 0, /* tp_itemsize */
+ sizeof(BPy_PropertyArrayRNA), /* tp_basicsize */
+ 0, /* tp_itemsize */
/* methods */
- NULL, /* tp_dealloc */
+ (destructor)pyrna_prop_array_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
@@ -4432,8 +4464,11 @@ PyTypeObject pyrna_prop_array_Type = {
NULL, /* subclassed */ /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/
- 0, /* long tp_weaklistoffset; */
-
+#ifdef USE_WEAKREFS
+ offsetof(BPy_PropertyArrayRNA, in_weakreflist), /* long tp_weaklistoffset; */
+#else
+ 0,
+#endif
/*** Added in release 2.2 ***/
/* Iterators */
(getiterfunc)pyrna_prop_array_iter, /* getiterfunc tp_iter; */
@@ -4467,10 +4502,10 @@ PyTypeObject pyrna_prop_array_Type = {
PyTypeObject pyrna_prop_collection_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
"bpy_prop_collection", /* tp_name */
- sizeof( BPy_PropertyRNA ), /* tp_basicsize */
+ sizeof(BPy_PropertyRNA), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
- NULL, /* tp_dealloc */
+ (destructor)pyrna_prop_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
@@ -4512,7 +4547,11 @@ PyTypeObject pyrna_prop_collection_Type = {
NULL, /* subclassed */ /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/
- 0, /* long tp_weaklistoffset; */
+#ifdef USE_WEAKREFS
+ offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */
+#else
+ 0,
+#endif
/*** Added in release 2.2 ***/
/* Iterators */
@@ -4548,10 +4587,10 @@ PyTypeObject pyrna_prop_collection_Type = {
static PyTypeObject pyrna_prop_collection_idprop_Type = {
PyVarObject_HEAD_INIT(NULL, 0)
"bpy_prop_collection_idprop", /* tp_name */
- sizeof( BPy_PropertyRNA ), /* tp_basicsize */
- 0, /* tp_itemsize */
+ sizeof(BPy_PropertyRNA), /* tp_basicsize */
+ 0, /* tp_itemsize */
/* methods */
- NULL, /* tp_dealloc */
+ (destructor)pyrna_prop_dealloc, /* tp_dealloc */
NULL, /* printfunc tp_print; */
NULL, /* getattrfunc tp_getattr; */
NULL, /* setattrfunc tp_setattr; */
@@ -4593,7 +4632,11 @@ static PyTypeObject pyrna_prop_collection_idprop_Type = {
NULL, /* subclassed */ /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/
- 0, /* long tp_weaklistoffset; */
+#ifdef USE_WEAKREFS
+ offsetof(BPy_PropertyRNA, in_weakreflist), /* long tp_weaklistoffset; */
+#else
+ 0,
+#endif
/*** Added in release 2.2 ***/
/* Iterators */
@@ -4834,6 +4877,9 @@ PyObject *pyrna_struct_CreatePyObject( PointerRNA *ptr )
else {
fprintf(stderr, "Could not make type\n");
pyrna = ( BPy_StructRNA * ) PyObject_NEW( BPy_StructRNA, &pyrna_struct_Type );
+#ifdef USE_WEAKREFS
+ pyrna->in_weakreflist= NULL;
+#endif
}
}
@@ -4870,11 +4916,17 @@ PyObject *pyrna_prop_CreatePyObject( PointerRNA *ptr, PropertyRNA *prop )
}
pyrna = (BPy_PropertyRNA *) PyObject_NEW(BPy_PropertyRNA, type);
+#ifdef USE_WEAKREFS
+ pyrna->in_weakreflist= NULL;
+#endif
}
else {
pyrna = (BPy_PropertyRNA *) PyObject_NEW(BPy_PropertyArrayRNA, &pyrna_prop_array_Type);
((BPy_PropertyArrayRNA *)pyrna)->arraydim= 0;
((BPy_PropertyArrayRNA *)pyrna)->arrayoffset= 0;
+#ifdef USE_WEAKREFS
+ ((BPy_PropertyArrayRNA *)pyrna)->in_weakreflist= NULL;
+#endif
}
if( !pyrna ) {
@@ -5019,7 +5071,7 @@ PyObject *BPY_rna_types(void)
if ((pyrna_basetype_Type.tp_flags & Py_TPFLAGS_READY)==0) {
pyrna_basetype_Type.tp_name = "RNA_Types";
- pyrna_basetype_Type.tp_basicsize = sizeof( BPy_BaseTypeRNA );
+ pyrna_basetype_Type.tp_basicsize = sizeof(BPy_BaseTypeRNA);
pyrna_basetype_Type.tp_getattro = ( getattrofunc )pyrna_basetype_getattro;
pyrna_basetype_Type.tp_flags = Py_TPFLAGS_DEFAULT;
pyrna_basetype_Type.tp_methods = pyrna_basetype_methods;
@@ -5033,7 +5085,9 @@ PyObject *BPY_rna_types(void)
/* avoid doing this lookup for every getattr */
RNA_blender_rna_pointer_create(&self->ptr);
self->prop = RNA_struct_find_property(&self->ptr, "structs");
-
+#ifdef USE_WEAKREFS
+ self->in_weakreflist= NULL;
+#endif
return (PyObject *)self;
}
@@ -5415,7 +5469,7 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param
/* testing, for correctness, not operator and not draw function */
const short is_readonly= strstr("draw", func_id) || /*strstr("render", func_id) ||*/ !RNA_struct_is_a(ptr->type, &RNA_Operator);
#endif
-
+
py_class= RNA_struct_py_type_get(ptr->type);
/* rare case. can happen when registering subclasses */
diff --git a/source/blender/python/intern/bpy_rna.h b/source/blender/python/intern/bpy_rna.h
index c599ab5c95e..e213ce90dae 100644
--- a/source/blender/python/intern/bpy_rna.h
+++ b/source/blender/python/intern/bpy_rna.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -39,21 +39,33 @@ extern PyTypeObject pyrna_prop_collection_Type;
#define BPy_PropertyRNA_Check(v) (PyObject_TypeCheck(v, &pyrna_prop_Type))
#define BPy_PropertyRNA_CheckExact(v) (Py_TYPE(v) == &pyrna_prop_Type)
+/* play it safe and keep optional for now, need to test further now this affects looping on 10000's of verts for eg. */
+// #define USE_WEAKREFS
+
typedef struct {
PyObject_HEAD /* required python macro */
- PointerRNA ptr;
+ PointerRNA ptr;
+#ifdef USE_WEAKREFS
+ PyObject *in_weakreflist;
+#endif
} BPy_DummyPointerRNA;
typedef struct {
PyObject_HEAD /* required python macro */
PointerRNA ptr;
int freeptr; /* needed in some cases if ptr.data is created on the fly, free when deallocing */
+#ifdef USE_WEAKREFS
+ PyObject *in_weakreflist;
+#endif
} BPy_StructRNA;
typedef struct {
PyObject_HEAD /* required python macro */
PointerRNA ptr;
PropertyRNA *prop;
+#ifdef USE_WEAKREFS
+ PyObject *in_weakreflist;
+#endif
} BPy_PropertyRNA;
typedef struct {
@@ -64,6 +76,9 @@ typedef struct {
/* Arystan: this is a hack to allow sub-item r/w access like: face.uv[n][m] */
int arraydim; /* array dimension, e.g: 0 for face.uv, 2 for face.uv[n][m], etc. */
int arrayoffset; /* array first item offset, e.g. if face.uv is [4][2], arrayoffset for face.uv[n] is 2n */
+#ifdef USE_WEAKREFS
+ PyObject *in_weakreflist;
+#endif
} BPy_PropertyArrayRNA;
/* cheap trick */
diff --git a/source/blender/python/intern/bpy_rna_array.c b/source/blender/python/intern/bpy_rna_array.c
index b4eef666279..4d7fe5906c9 100644
--- a/source/blender/python/intern/bpy_rna_array.c
+++ b/source/blender/python/intern/bpy_rna_array.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -98,7 +98,7 @@ static int validate_array_type(PyObject *seq, int dim, int totdim, int dimsize[]
Py_DECREF(item);
/* BLI_snprintf(error_str, error_str_size, "sequence items should be of type %s", item_type_str); */
- PyErr_Format(PyExc_TypeError, "expected sequence items of type %s, not %s", item_type_str, Py_TYPE(item)->tp_name);
+ PyErr_Format(PyExc_TypeError, "%s expected sequence items of type %s, not %s", error_prefix, item_type_str, Py_TYPE(item)->tp_name);
return 0;
}
@@ -110,21 +110,22 @@ static int validate_array_type(PyObject *seq, int dim, int totdim, int dimsize[]
}
/* Returns the number of items in a single- or multi-dimensional sequence. */
-static int count_items(PyObject *seq)
+static int count_items(PyObject *seq, int dim)
{
int totitem= 0;
- if (PySequence_Check(seq)) {
+ if(dim > 1) {
const int seq_size= PySequence_Size(seq);
int i;
for (i= 0; i < seq_size; i++) {
PyObject *item= PySequence_GetItem(seq, i);
- totitem += count_items(item);
+ totitem += count_items(item, dim - 1);
Py_DECREF(item);
}
}
- else
- totitem= 1;
+ else {
+ totitem= PySequence_Size(seq);
+ }
return totitem;
}
@@ -135,8 +136,8 @@ static int validate_array_length(PyObject *rvalue, PointerRNA *ptr, PropertyRNA
int dimsize[MAX_ARRAY_DIMENSION];
int tot, totdim, len;
- tot= count_items(rvalue);
totdim= RNA_property_array_dimension(ptr, prop, dimsize);
+ tot= count_items(rvalue, totdim - lvalue_dim);
if ((RNA_property_flag(prop) & PROP_DYNAMIC) && lvalue_dim == 0) {
if (RNA_property_array_length(ptr, prop) != tot) {
@@ -186,7 +187,7 @@ static int validate_array_length(PyObject *rvalue, PointerRNA *ptr, PropertyRNA
if (tot != len) {
/* BLI_snprintf(error_str, error_str_size, "sequence must have length of %d", len); */
- PyErr_Format(PyExc_ValueError, "%s sequence must have %d items total, not %d", error_prefix, len, tot);
+ PyErr_Format(PyExc_ValueError, "%s %.200s.%.200s, sequence must have %d items total, not %d", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), len, tot);
return 0;
}
}
@@ -315,7 +316,7 @@ static int py_to_array_index(PyObject *py, PointerRNA *ptr, PropertyRNA *prop, i
if(lvalue_dim == totdim) { /* single item, assign directly */
if(!check_item_type(py)) {
- PyErr_Format(PyExc_TypeError, "%s expected a %s type, not %s", error_prefix, item_type_str, Py_TYPE(py)->tp_name);
+ PyErr_Format(PyExc_TypeError, "%s %.200s.%.200s, expected a %s type, not %s", error_prefix, RNA_struct_identifier(ptr->type), RNA_property_identifier(prop), item_type_str, Py_TYPE(py)->tp_name);
return 0;
}
copy_value_single(py, ptr, prop, NULL, 0, &index, convert_item, rna_set_index);
diff --git a/source/blender/python/intern/bpy_rna_callback.c b/source/blender/python/intern/bpy_rna_callback.c
index 0ff67430520..a455a588c04 100644
--- a/source/blender/python/intern/bpy_rna_callback.c
+++ b/source/blender/python/intern/bpy_rna_callback.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/intern/bpy_rna_callback.h b/source/blender/python/intern/bpy_rna_callback.h
index 955ea8305f0..8b218aaefb2 100644
--- a/source/blender/python/intern/bpy_rna_callback.h
+++ b/source/blender/python/intern/bpy_rna_callback.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/python/intern/bpy_traceback.c b/source/blender/python/intern/bpy_traceback.c
new file mode 100644
index 00000000000..ca94378a72a
--- /dev/null
+++ b/source/blender/python/intern/bpy_traceback.c
@@ -0,0 +1,151 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include <Python.h>
+#include <frameobject.h>
+
+#include "bpy_traceback.h"
+
+static const char *traceback_filepath(PyTracebackObject *tb)
+{
+ return _PyUnicode_AsString(tb->tb_frame->f_code->co_filename);
+}
+
+/* copied from pythonrun.c, 3.2.0 */
+static int
+parse_syntax_error(PyObject *err, PyObject **message, const char **filename,
+ int *lineno, int *offset, const char **text)
+{
+ long hold;
+ PyObject *v;
+
+ /* old style errors */
+ if (PyTuple_Check(err))
+ return PyArg_ParseTuple(err, "O(ziiz)", message, filename,
+ lineno, offset, text);
+
+ /* new style errors. `err' is an instance */
+
+ if (! (v = PyObject_GetAttrString(err, "msg")))
+ goto finally;
+ *message = v;
+
+ if (!(v = PyObject_GetAttrString(err, "filename")))
+ goto finally;
+ if (v == Py_None)
+ *filename = NULL;
+ else if (! (*filename = _PyUnicode_AsString(v)))
+ goto finally;
+
+ Py_DECREF(v);
+ if (!(v = PyObject_GetAttrString(err, "lineno")))
+ goto finally;
+ hold = PyLong_AsLong(v);
+ Py_DECREF(v);
+ v = NULL;
+ if (hold < 0 && PyErr_Occurred())
+ goto finally;
+ *lineno = (int)hold;
+
+ if (!(v = PyObject_GetAttrString(err, "offset")))
+ goto finally;
+ if (v == Py_None) {
+ *offset = -1;
+ Py_DECREF(v);
+ v = NULL;
+ } else {
+ hold = PyLong_AsLong(v);
+ Py_DECREF(v);
+ v = NULL;
+ if (hold < 0 && PyErr_Occurred())
+ goto finally;
+ *offset = (int)hold;
+ }
+
+ if (!(v = PyObject_GetAttrString(err, "text")))
+ goto finally;
+ if (v == Py_None)
+ *text = NULL;
+ else if (!PyUnicode_Check(v) ||
+ !(*text = _PyUnicode_AsString(v)))
+ goto finally;
+ Py_DECREF(v);
+ return 1;
+
+finally:
+ Py_XDECREF(v);
+ return 0;
+}
+/* end copied function! */
+
+
+void python_script_error_jump(const char *filepath, int *lineno, int *offset)
+{
+ PyObject *exception, *value;
+ PyTracebackObject *tb;
+
+ *lineno= -1;
+ *offset= 0;
+
+ PyErr_Fetch(&exception, &value, (PyObject **)&tb);
+
+ if(exception && PyErr_GivenExceptionMatches(exception, PyExc_SyntaxError)) {
+ /* no traceback available when SyntaxError.
+ * python has no api's to this. reference parse_syntax_error() from pythonrun.c */
+ PyErr_NormalizeException(&exception, &value, (PyObject **)&tb);
+ PyErr_Restore(exception, value, (PyObject *)tb); /* takes away reference! */
+
+ if(value) { /* should always be true */
+ PyObject *message;
+ const char *filename, *text;
+
+ if(parse_syntax_error(value, &message, &filename, lineno, offset, &text)) {
+ /* python adds a '/', prefix, so check for both */
+ if( (strcmp(filename, filepath) == 0) ||
+ ((filename[0] == '\\' || filename[0] == '/') && strcmp(filename + 1, filepath) == 0)
+ ) {
+ /* good */
+ }
+ else {
+ *lineno= -1;
+ }
+ }
+ else {
+ *lineno= -1;
+ }
+ }
+
+ /* this avoids an abort in Python 2.3's garbage collecting */
+ }
+ else {
+ PyErr_NormalizeException(&exception, &value, (PyObject **)&tb);
+ PyErr_Restore(exception, value, (PyObject *)tb); /* takes away reference! */
+ PyErr_Print();
+
+ for(tb= (PyTracebackObject *)PySys_GetObject("last_traceback"); tb && (PyObject *)tb != Py_None; tb= tb->tb_next) {
+ if(strcmp(traceback_filepath(tb), filepath) != 0) {
+ *lineno= tb->tb_lineno;
+ break;
+ }
+ }
+ }
+}
diff --git a/source/blender/python/intern/bpy_traceback.h b/source/blender/python/intern/bpy_traceback.h
new file mode 100644
index 00000000000..ade1c067c9c
--- /dev/null
+++ b/source/blender/python/intern/bpy_traceback.h
@@ -0,0 +1,28 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef BPY_TRACEBACK_H
+#define BPY_TRACEBACK_H
+
+void python_script_error_jump(const char *filepath, int *lineno, int *offset);
+
+#endif // BPY_TRACEBACK_H
diff --git a/source/blender/python/intern/bpy_util.c b/source/blender/python/intern/bpy_util.c
index 63a397769c3..95d2f3bba9f 100644
--- a/source/blender/python/intern/bpy_util.c
+++ b/source/blender/python/intern/bpy_util.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -36,94 +36,6 @@ static bContext* __py_context = NULL;
bContext* BPy_GetContext(void) { return __py_context; }
void BPy_SetContext(bContext *C) { __py_context= C; }
-int BPY_class_validate(const char *class_type, PyObject *class, PyObject *base_class, BPY_class_attr_check* class_attrs, PyObject **py_class_attrs)
-{
- PyObject *item, *fitem;
- PyObject *py_arg_count;
- int i, arg_count;
-
- if (base_class) {
- if (!PyObject_IsSubclass(class, base_class)) {
- PyObject *name= PyObject_GetAttrString(base_class, "__name__");
- PyErr_Format(PyExc_AttributeError, "expected %s subclass of class \"%s\"", class_type, name ? _PyUnicode_AsString(name):"<UNKNOWN>");
- Py_XDECREF(name);
- return -1;
- }
- }
-
- for(i= 0;class_attrs->name; class_attrs++, i++) {
- item = PyObject_GetAttrString(class, class_attrs->name);
-
- if (py_class_attrs)
- py_class_attrs[i]= item;
-
- if (item==NULL) {
- if ((class_attrs->flag & BPY_CLASS_ATTR_OPTIONAL)==0) {
- PyErr_Format(PyExc_AttributeError, "expected %s class to have an \"%s\" attribute", class_type, class_attrs->name);
- return -1;
- }
-
- PyErr_Clear();
- }
- else {
- Py_DECREF(item); /* no need to keep a ref, the class owns it */
-
- if((item==Py_None) && (class_attrs->flag & BPY_CLASS_ATTR_NONE_OK)) {
- /* dont do anything, this is ok, dont bother checking other types */
- }
- else {
- switch(class_attrs->type) {
- case 's':
- if (PyUnicode_Check(item)==0) {
- PyErr_Format(PyExc_AttributeError, "expected %s class \"%s\" attribute to be a string", class_type, class_attrs->name);
- return -1;
- }
- if(class_attrs->len != -1 && class_attrs->len < PyUnicode_GetSize(item)) {
- PyErr_Format(PyExc_AttributeError, "expected %s class \"%s\" attribute string to be shorter then %d", class_type, class_attrs->name, class_attrs->len);
- return -1;
- }
-
- break;
- case 'l':
- if (PyList_Check(item)==0) {
- PyErr_Format(PyExc_AttributeError, "expected %s class \"%s\" attribute to be a list", class_type, class_attrs->name);
- return -1;
- }
- if(class_attrs->len != -1 && class_attrs->len < PyList_GET_SIZE(item)) {
- PyErr_Format(PyExc_AttributeError, "expected %s class \"%s\" attribute list to be shorter then %d", class_type, class_attrs->name, class_attrs->len);
- return -1;
- }
- break;
- case 'f':
- if (PyMethod_Check(item))
- fitem= PyMethod_Function(item); /* py 2.x */
- else
- fitem= item; /* py 3.x */
-
- if (PyFunction_Check(fitem)==0) {
- PyErr_Format(PyExc_AttributeError, "expected %s class \"%s\" attribute to be a function", class_type, class_attrs->name);
- return -1;
- }
- if (class_attrs->arg_count >= 0) { /* -1 if we dont care*/
- py_arg_count = PyObject_GetAttrString(PyFunction_GET_CODE(fitem), "co_argcount");
- arg_count = PyLong_AsSsize_t(py_arg_count);
- Py_DECREF(py_arg_count);
-
- if (arg_count != class_attrs->arg_count) {
- PyErr_Format(PyExc_AttributeError, "expected %s class \"%s\" function to have %d args", class_type, class_attrs->name, class_attrs->arg_count);
- return -1;
- }
- }
- break;
- }
- }
- }
- }
- return 0;
-}
-
-
-
char *BPy_enum_as_string(EnumPropertyItem *item)
{
DynStr *dynstr= BLI_dynstr_new();
diff --git a/source/blender/python/intern/bpy_util.h b/source/blender/python/intern/bpy_util.h
index e1473a563a6..b35a6b20306 100644
--- a/source/blender/python/intern/bpy_util.h
+++ b/source/blender/python/intern/bpy_util.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -34,24 +34,8 @@
struct EnumPropertyItem;
struct ReportList;
-/* Class type checking, use for checking classes can be added as operators, panels etc */
-typedef struct BPY_class_attr_check {
- const char *name; /* name of the class attribute */
- char type; /* 's' = string, 'f' = function, 'l' = list, (add as needed) */
- int arg_count; /* only for function types, -1 for undefined, includes self arg */
- int len; /* only for string types currently */
- int flag; /* other options */
-} BPY_class_attr_check;
-
-/* BPY_class_attr_check, flag */
-#define BPY_CLASS_ATTR_OPTIONAL 1
-#define BPY_CLASS_ATTR_NONE_OK 2
-
-int BPY_class_validate(const char *class_type, PyObject *class, PyObject *base_class, BPY_class_attr_check* class_attrs, PyObject **py_class_attrs);
-
char *BPy_enum_as_string(struct EnumPropertyItem *item);
-
#define BLANK_PYTHON_TYPE {PyVarObject_HEAD_INIT(NULL, 0) NULL}
/* error reporting */
diff --git a/source/blender/python/intern/stubs.c b/source/blender/python/intern/stubs.c
index c766e802dd0..7f87dd36f6d 100644
--- a/source/blender/python/intern/stubs.c
+++ b/source/blender/python/intern/stubs.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c
index 40dc0df6b9b..d61e0b16155 100644
--- a/source/blender/quicktime/apple/quicktime_export.c
+++ b/source/blender/quicktime/apple/quicktime_export.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* quicktime_export.c
diff --git a/source/blender/quicktime/apple/quicktime_import.c b/source/blender/quicktime/apple/quicktime_import.c
index cec5a1735fc..8241fea447a 100644
--- a/source/blender/quicktime/apple/quicktime_import.c
+++ b/source/blender/quicktime/apple/quicktime_import.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* quicktime_import.c
diff --git a/source/blender/quicktime/quicktime_import.h b/source/blender/quicktime/quicktime_import.h
index bfc71b65127..d7f96375fa4 100644
--- a/source/blender/quicktime/quicktime_import.h
+++ b/source/blender/quicktime/quicktime_import.h
@@ -1,4 +1,4 @@
-/**
+/*
* Quicktime_import.h
*
* $Id$
diff --git a/source/blender/readblenfile/stub/BLO_readblenfileSTUB.c b/source/blender/readblenfile/stub/BLO_readblenfileSTUB.c
index c5b523b106f..ed8c22f4288 100644
--- a/source/blender/readblenfile/stub/BLO_readblenfileSTUB.c
+++ b/source/blender/readblenfile/stub/BLO_readblenfileSTUB.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/readblenfile/test/test.c b/source/blender/readblenfile/test/test.c
index 1cb4f7e92f3..647df053c38 100644
--- a/source/blender/readblenfile/test/test.c
+++ b/source/blender/readblenfile/test/test.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h
index 63d986026d2..27d04acf959 100644
--- a/source/blender/render/extern/include/RE_pipeline.h
+++ b/source/blender/render/extern/include/RE_pipeline.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RE_pipeline.h
+ * \ingroup render
+ */
+
#ifndef RE_PIPELINE_H
#define RE_PIPELINE_H
diff --git a/source/blender/render/extern/include/RE_render_ext.h b/source/blender/render/extern/include/RE_render_ext.h
index b04f7247e2a..849640a5c16 100644
--- a/source/blender/render/extern/include/RE_render_ext.h
+++ b/source/blender/render/extern/include/RE_render_ext.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,10 @@
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
+/** \file RE_render_ext.h
+ * \ingroup render
+ */
+
#ifndef RE_RENDER_EXT_H
#define RE_RENDER_EXT_H
diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h
index 7825d2e4647..ca04990efad 100644
--- a/source/blender/render/extern/include/RE_shader_ext.h
+++ b/source/blender/render/extern/include/RE_shader_ext.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,10 @@
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
+/** \file RE_shader_ext.h
+ * \ingroup render
+ */
+
#ifndef RE_SHADER_EXT_H
#define RE_SHADER_EXT_H
diff --git a/source/blender/render/intern/include/raycounter.h b/source/blender/render/intern/include/raycounter.h
index 1a9b91c17a8..78d7d8fe4b4 100644
--- a/source/blender/render/intern/include/raycounter.h
+++ b/source/blender/render/intern/include/raycounter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/include/rayintersection.h b/source/blender/render/intern/include/rayintersection.h
index eefd65dae1b..021801db2fa 100644
--- a/source/blender/render/intern/include/rayintersection.h
+++ b/source/blender/render/intern/include/rayintersection.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/include/rayobject.h b/source/blender/render/intern/include/rayobject.h
index 61b7a23cf54..415876ca35f 100644
--- a/source/blender/render/intern/include/rayobject.h
+++ b/source/blender/render/intern/include/rayobject.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h
index 0e74e7715ef..3851be06eda 100644
--- a/source/blender/render/intern/include/render_types.h
+++ b/source/blender/render/intern/include/render_types.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/include/renderdatabase.h b/source/blender/render/intern/include/renderdatabase.h
index 8ef68d4a5c1..7b8dddd1ce6 100644
--- a/source/blender/render/intern/include/renderdatabase.h
+++ b/source/blender/render/intern/include/renderdatabase.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/include/renderpipeline.h b/source/blender/render/intern/include/renderpipeline.h
index f6106a1f65a..289e9bc9f04 100644
--- a/source/blender/render/intern/include/renderpipeline.h
+++ b/source/blender/render/intern/include/renderpipeline.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/include/shading.h b/source/blender/render/intern/include/shading.h
index 8250c5631dd..739c7cd3d26 100644
--- a/source/blender/render/intern/include/shading.h
+++ b/source/blender/render/intern/include/shading.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -62,6 +62,7 @@ void shade_input_calc_viewco(struct ShadeInput *shi, float x, float y, float z,
void shade_input_set_viewco(struct ShadeInput *shi, float x, float y, float sx, float sy, float z);
void shade_input_set_uv(struct ShadeInput *shi);
void shade_input_set_normals(struct ShadeInput *shi);
+void shade_input_set_vertex_normals(struct ShadeInput *shi);
void shade_input_flip_normals(struct ShadeInput *shi);
void shade_input_set_shade_texco(struct ShadeInput *shi);
void shade_input_set_strand(struct ShadeInput *shi, struct StrandRen *strand, struct StrandPoint *spoint);
diff --git a/source/blender/render/intern/include/sss.h b/source/blender/render/intern/include/sss.h
index 8acf5ef69b0..8e54f90fca3 100644
--- a/source/blender/render/intern/include/sss.h
+++ b/source/blender/render/intern/include/sss.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/include/sunsky.h b/source/blender/render/intern/include/sunsky.h
index 111d1df2694..26d74d21e18 100644
--- a/source/blender/render/intern/include/sunsky.h
+++ b/source/blender/render/intern/include/sunsky.h
@@ -1,4 +1,4 @@
- /**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
diff --git a/source/blender/render/intern/include/volume_precache.h b/source/blender/render/intern/include/volume_precache.h
index 3ddf8380241..2dfe205f850 100644
--- a/source/blender/render/intern/include/volume_precache.h
+++ b/source/blender/render/intern/include/volume_precache.h
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/render/intern/include/volumetric.h b/source/blender/render/intern/include/volumetric.h
index 827aaf3672c..70012058c34 100644
--- a/source/blender/render/intern/include/volumetric.h
+++ b/source/blender/render/intern/include/volumetric.h
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/render/intern/include/voxeldata.h b/source/blender/render/intern/include/voxeldata.h
index 1b9421b654e..89cb18844d5 100644
--- a/source/blender/render/intern/include/voxeldata.h
+++ b/source/blender/render/intern/include/voxeldata.h
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/render/intern/raytrace/bvh.h b/source/blender/render/intern/raytrace/bvh.h
index dd23967297a..e581bbf369a 100644
--- a/source/blender/render/intern/raytrace/bvh.h
+++ b/source/blender/render/intern/raytrace/bvh.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/rayobject.cpp b/source/blender/render/intern/raytrace/rayobject.cpp
index dd4932f0bd9..1bcda3ca039 100644
--- a/source/blender/render/intern/raytrace/rayobject.cpp
+++ b/source/blender/render/intern/raytrace/rayobject.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/rayobject_blibvh.cpp b/source/blender/render/intern/raytrace/rayobject_blibvh.cpp
index 5231c221662..396ca7fc0ef 100644
--- a/source/blender/render/intern/raytrace/rayobject_blibvh.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_blibvh.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/rayobject_empty.cpp b/source/blender/render/intern/raytrace/rayobject_empty.cpp
index abd54ab9fab..fd6e02fecc1 100644
--- a/source/blender/render/intern/raytrace/rayobject_empty.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_empty.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/rayobject_hint.h b/source/blender/render/intern/raytrace/rayobject_hint.h
index adb7d652276..6f49b276681 100644
--- a/source/blender/render/intern/raytrace/rayobject_hint.h
+++ b/source/blender/render/intern/raytrace/rayobject_hint.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/rayobject_instance.cpp b/source/blender/render/intern/raytrace/rayobject_instance.cpp
index 6274c76a004..0dd8dc97944 100644
--- a/source/blender/render/intern/raytrace/rayobject_instance.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_instance.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/rayobject_octree.cpp b/source/blender/render/intern/raytrace/rayobject_octree.cpp
index 9db9f1ffdb8..190fcd3a95a 100644
--- a/source/blender/render/intern/raytrace/rayobject_octree.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_octree.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/rayobject_qbvh.cpp b/source/blender/render/intern/raytrace/rayobject_qbvh.cpp
index e8a118d3349..e9d4d271e72 100644
--- a/source/blender/render/intern/raytrace/rayobject_qbvh.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_qbvh.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/rayobject_raycounter.cpp b/source/blender/render/intern/raytrace/rayobject_raycounter.cpp
index 52262a8044a..0788b2f31cc 100644
--- a/source/blender/render/intern/raytrace/rayobject_raycounter.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_raycounter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp b/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp
index cdaaebc7f92..2d6916cd60d 100644
--- a/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/rayobject_rtbuild.h b/source/blender/render/intern/raytrace/rayobject_rtbuild.h
index 6bc33ca6626..7c9706097fe 100644
--- a/source/blender/render/intern/raytrace/rayobject_rtbuild.h
+++ b/source/blender/render/intern/raytrace/rayobject_rtbuild.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/rayobject_svbvh.cpp b/source/blender/render/intern/raytrace/rayobject_svbvh.cpp
index c10da3ad8c0..c4e30f97881 100644
--- a/source/blender/render/intern/raytrace/rayobject_svbvh.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_svbvh.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/rayobject_vbvh.cpp b/source/blender/render/intern/raytrace/rayobject_vbvh.cpp
index df5842db2bf..b0fc70d7875 100644
--- a/source/blender/render/intern/raytrace/rayobject_vbvh.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_vbvh.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/reorganize.h b/source/blender/render/intern/raytrace/reorganize.h
index 4e2dce32136..0524073abfc 100644
--- a/source/blender/render/intern/raytrace/reorganize.h
+++ b/source/blender/render/intern/raytrace/reorganize.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/svbvh.h b/source/blender/render/intern/raytrace/svbvh.h
index 832058870dd..573240df2d6 100644
--- a/source/blender/render/intern/raytrace/svbvh.h
+++ b/source/blender/render/intern/raytrace/svbvh.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/raytrace/vbvh.h b/source/blender/render/intern/raytrace/vbvh.h
index 06188ede8c6..deddc7059a4 100644
--- a/source/blender/render/intern/raytrace/vbvh.h
+++ b/source/blender/render/intern/raytrace/vbvh.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c
index b4e6d4a04c2..0da61204aba 100644
--- a/source/blender/render/intern/source/convertblender.c
+++ b/source/blender/render/intern/source/convertblender.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -5529,7 +5529,7 @@ void RE_Database_FromScene_Vectors(Render *re, Main *bmain, Scene *sce, unsigned
ListBase strandsurface;
int step;
- re->i.infostr= "Calculating previous vectors";
+ re->i.infostr= "Calculating previous frame vectors";
re->r.mode |= R_SPEED;
speedvector_project(re, NULL, NULL, NULL); /* initializes projection code */
diff --git a/source/blender/render/intern/source/gammaCorrectionTables.c b/source/blender/render/intern/source/gammaCorrectionTables.c
index 818c3c72118..cd1539bdda0 100644
--- a/source/blender/render/intern/source/gammaCorrectionTables.c
+++ b/source/blender/render/intern/source/gammaCorrectionTables.c
@@ -1,4 +1,4 @@
-/**
+/*
* Jitter offset table
*
* $Id$
diff --git a/source/blender/render/intern/source/imagetexture.c b/source/blender/render/intern/source/imagetexture.c
index ca4c6935a4c..4baa3480ae9 100644
--- a/source/blender/render/intern/source/imagetexture.c
+++ b/source/blender/render/intern/source/imagetexture.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* $Id$
*
@@ -210,8 +210,14 @@ int imagewrap(Tex *tex, Image *ima, ImBuf *ibuf, float *texvec, TexResult *texre
if(texres->nor) {
if(tex->imaflag & TEX_NORMALMAP) {
// qdn: normal from color
- texres->nor[0] = 2.f*(texres->tr - 0.5f);
- texres->nor[1] = 2.f*(0.5f - texres->tg);
+ // The invert of the red channel is to make
+ // the normal map compliant with the outside world.
+ // It needs to be done because in Blender
+ // the normal used in the renderer points inward. It is generated
+ // this way in calc_vertexnormals(). Should this ever change
+ // this negate must be removed.
+ texres->nor[0] = -2.f*(texres->tr - 0.5f);
+ texres->nor[1] = 2.f*(texres->tg - 0.5f);
texres->nor[2] = 2.f*(texres->tb - 0.5f);
}
else {
@@ -1348,8 +1354,14 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, float *texvec,
ibuf->rect -= ibuf->x*ibuf->y;
if (texres->nor && (tex->imaflag & TEX_NORMALMAP)) { // normal from color
- texres->nor[0] = 2.f*(texres->tr - 0.5f);
- texres->nor[1] = 2.f*(0.5f - texres->tg);
+ // The invert of the red channel is to make
+ // the normal map compliant with the outside world.
+ // It needs to be done because in Blender
+ // the normal used in the renderer points inward. It is generated
+ // this way in calc_vertexnormals(). Should this ever change
+ // this negate must be removed.
+ texres->nor[0] = -2.f*(texres->tr - 0.5f);
+ texres->nor[1] = 2.f*(texres->tg - 0.5f);
texres->nor[2] = 2.f*(texres->tb - 0.5f);
}
@@ -1728,8 +1740,14 @@ int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, float *texvec, float *DXT, f
if(texres->nor && (tex->imaflag & TEX_NORMALMAP)) {
// qdn: normal from color
- texres->nor[0] = 2.f*(texres->tr - 0.5f);
- texres->nor[1] = 2.f*(0.5f - texres->tg);
+ // The invert of the red channel is to make
+ // the normal map compliant with the outside world.
+ // It needs to be done because in Blender
+ // the normal used in the renderer points inward. It is generated
+ // this way in calc_vertexnormals(). Should this ever change
+ // this negate must be removed.
+ texres->nor[0] = -2.f*(texres->tr - 0.5f);
+ texres->nor[1] = 2.f*(texres->tg - 0.5f);
texres->nor[2] = 2.f*(texres->tb - 0.5f);
}
diff --git a/source/blender/render/intern/source/initrender.c b/source/blender/render/intern/source/initrender.c
index f54b7e2a43f..7ba2d2d9c88 100644
--- a/source/blender/render/intern/source/initrender.c
+++ b/source/blender/render/intern/source/initrender.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index b9b2606a315..ad2a5b10a15 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/render/intern/source/pixelshading.c b/source/blender/render/intern/source/pixelshading.c
index 74b59c881bb..a814b74dcfc 100644
--- a/source/blender/render/intern/source/pixelshading.c
+++ b/source/blender/render/intern/source/pixelshading.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c
index 00092b8b053..99e17a1999f 100644
--- a/source/blender/render/intern/source/rayshade.c
+++ b/source/blender/render/intern/source/rayshade.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -1502,7 +1502,7 @@ void ray_trace(ShadeInput *shi, ShadeResult *shr)
float diff[3];
int do_tra, do_mir;
- do_tra= ((shi->mat->mode & MA_TRANSP) && (shi->mat->mode & MA_RAYTRANSP) && shr->alpha!=1.0f && (shi->depth <= shi->mat->ray_depth_tra));
+ do_tra= ((shi->mode & MA_TRANSP) && (shi->mode & MA_RAYTRANSP) && shr->alpha!=1.0f && (shi->depth <= shi->mat->ray_depth_tra));
do_mir= ((shi->mat->mode & MA_RAYMIRROR) && shi->ray_mirror!=0.0f && (shi->depth <= shi->mat->ray_depth));
/* raytrace mirror amd refract like to separate the spec color */
diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c
index 5d2002e1213..52a80fba5bf 100644
--- a/source/blender/render/intern/source/rendercore.c
+++ b/source/blender/render/intern/source/rendercore.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -2180,8 +2180,14 @@ static void bake_shade(void *handle, Object *ob, ShadeInput *shi, int quad, int
normalize_v3(nor); /* in case object has scaling */
- shr.combined[0]= nor[0]/2.0f + 0.5f;
- shr.combined[1]= 0.5f - nor[1]/2.0f;
+ // The invert of the red channel is to make
+ // the normal map compliant with the outside world.
+ // It needs to be done because in Blender
+ // the normal used in the renderer points inward. It is generated
+ // this way in calc_vertexnormals(). Should this ever change
+ // this negate must be removed.
+ shr.combined[0]= (-nor[0])/2.0f + 0.5f;
+ shr.combined[1]= nor[1]/2.0f + 0.5f;
shr.combined[2]= nor[2]/2.0f + 0.5f;
}
else if(bs->type==RE_BAKE_TEXTURE) {
diff --git a/source/blender/render/intern/source/renderdatabase.c b/source/blender/render/intern/source/renderdatabase.c
index f5e5c679b9d..e000d7731f4 100644
--- a/source/blender/render/intern/source/renderdatabase.c
+++ b/source/blender/render/intern/source/renderdatabase.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/source/shadeinput.c b/source/blender/render/intern/source/shadeinput.c
index 3ed2a347e56..0aa5df8315c 100644
--- a/source/blender/render/intern/source/shadeinput.c
+++ b/source/blender/render/intern/source/shadeinput.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -133,13 +133,13 @@ void shade_material_loop(ShadeInput *shi, ShadeResult *shr)
/* depth >= 1 when ray-shading */
if(shi->depth==0 || shi->volume_depth > 0) {
if(R.r.mode & R_RAYTRACE) {
- if(shi->ray_mirror!=0.0f || ((shi->mat->mode & MA_TRANSP) && (shi->mat->mode & MA_RAYTRANSP) && shr->alpha!=1.0f)) {
+ if(shi->ray_mirror!=0.0f || ((shi->mode & MA_TRANSP) && (shi->mode & MA_RAYTRANSP) && shr->alpha!=1.0f)) {
/* ray trace works on combined, but gives pass info */
ray_trace(shi, shr);
}
}
/* disable adding of sky for raytransp */
- if((shi->mat->mode & MA_TRANSP) && (shi->mat->mode & MA_RAYTRANSP))
+ if((shi->mode & MA_TRANSP) && (shi->mode & MA_RAYTRANSP))
if((shi->layflag & SCE_LAY_SKY) && (R.r.alphamode==R_ADDSKY))
shr->alpha= 1.0f;
}
@@ -841,7 +841,7 @@ void shade_input_set_normals(ShadeInput *shi)
}
/* XXX shi->flippednor messes up otherwise */
-static void shade_input_set_vertex_normals(ShadeInput *shi)
+void shade_input_set_vertex_normals(ShadeInput *shi)
{
float u= shi->u, v= shi->v;
float l= 1.0f+u+v;
diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c
index cd21ab44142..881c4e4145d 100644
--- a/source/blender/render/intern/source/shadeoutput.c
+++ b/source/blender/render/intern/source/shadeoutput.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/source/strand.c b/source/blender/render/intern/source/strand.c
index 4e728c3e59e..847db912025 100644
--- a/source/blender/render/intern/source/strand.c
+++ b/source/blender/render/intern/source/strand.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
diff --git a/source/blender/render/intern/source/volume_precache.c b/source/blender/render/intern/source/volume_precache.c
index ddb3d68fcc7..173e1e0595a 100644
--- a/source/blender/render/intern/source/volume_precache.c
+++ b/source/blender/render/intern/source/volume_precache.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/render/intern/source/volumetric.c b/source/blender/render/intern/source/volumetric.c
index dc016a161b5..58466a9b169 100644
--- a/source/blender/render/intern/source/volumetric.c
+++ b/source/blender/render/intern/source/volumetric.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/render/intern/source/voxeldata.c b/source/blender/render/intern/source/voxeldata.c
index 2fba1091319..6190aca0e7f 100644
--- a/source/blender/render/intern/source/voxeldata.c
+++ b/source/blender/render/intern/source/voxeldata.c
@@ -1,4 +1,4 @@
-/**
+/*
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c
index a3d3a65cccc..d16431068e0 100644
--- a/source/blender/render/intern/source/zbuf.c
+++ b/source/blender/render/intern/source/zbuf.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -3766,7 +3766,10 @@ static void shade_tra_samples_fill(ShadeSample *ssamp, int x, int y, int z, int
shi->samplenr= R.shadowsamplenr[shi->thread]++;
shade_input_set_viewco(shi, x, y, xs, ys, (float)z);
shade_input_set_uv(shi);
- shade_input_set_normals(shi);
+ if(shi_inc==0)
+ shade_input_set_normals(shi);
+ else /* XXX shi->flippednor messes up otherwise */
+ shade_input_set_vertex_normals(shi);
shi_inc= 1;
}
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index 8590534df30..82ef6a1b80e 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file blender/windowmanager/WM_types.h
+ * \ingroup wm
+ */
+
#ifndef WM_TYPES_H
#define WM_TYPES_H
diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c
index fa4ff7a7b9b..424c13f089f 100644
--- a/source/blender/windowmanager/intern/wm.c
+++ b/source/blender/windowmanager/intern/wm.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm.c
+ * \ingroup wm
+ */
+
+
#include <string.h>
#include <stddef.h>
diff --git a/source/blender/windowmanager/intern/wm_apple.c b/source/blender/windowmanager/intern/wm_apple.c
index 22b4b85c01e..083500420a4 100644
--- a/source/blender/windowmanager/intern/wm_apple.c
+++ b/source/blender/windowmanager/intern/wm_apple.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm_apple.c
+ * \ingroup wm
+ */
+
+
#ifdef __APPLE__
#include "BKE_context.h"
diff --git a/source/blender/windowmanager/intern/wm_cursors.c b/source/blender/windowmanager/intern/wm_cursors.c
index d9d9de3f9e9..5951393a497 100644
--- a/source/blender/windowmanager/intern/wm_cursors.c
+++ b/source/blender/windowmanager/intern/wm_cursors.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm_cursors.c
+ * \ingroup wm
+ */
+
+
#include <stdio.h>
#include <string.h>
diff --git a/source/blender/windowmanager/intern/wm_dragdrop.c b/source/blender/windowmanager/intern/wm_dragdrop.c
index a19499b3464..21a725124ad 100644
--- a/source/blender/windowmanager/intern/wm_dragdrop.c
+++ b/source/blender/windowmanager/intern/wm_dragdrop.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm_dragdrop.c
+ * \ingroup wm
+ */
+
+
#include <string.h>
#include "DNA_windowmanager_types.h"
diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c
index 64779a162eb..c94ad74be72 100644
--- a/source/blender/windowmanager/intern/wm_draw.c
+++ b/source/blender/windowmanager/intern/wm_draw.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm_draw.c
+ * \ingroup wm
+ */
+
+
#include <stdlib.h>
#include <string.h>
#include <GL/glew.h>
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 39a6e5b27b5..fab3f05ca01 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm_event_system.c
+ * \ingroup wm
+ */
+
+
#include <stdlib.h>
#include <string.h>
#include <math.h>
diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index b54e70a7640..141c51adc58 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm_files.c
+ * \ingroup wm
+ */
+
+
/* placed up here because of crappy
* winsock stuff.
*/
@@ -257,6 +262,10 @@ static void wm_init_userdef(bContext *C)
MEM_CacheLimiter_set_maximum(U.memcachelimit * 1024 * 1024);
sound_init(CTX_data_main(C));
+ /* needed so loading a file from the command line respects user-pref [#26156] */
+ if(U.flag & USER_FILENOUI) G.fileflags |= G_FILE_NO_UI;
+ else G.fileflags &= ~G_FILE_NO_UI;
+
/* set the python auto-execute setting from user prefs */
/* disabled by default, unless explicitly enabled in the command line */
if ((U.flag & USER_SCRIPT_AUTOEXEC_DISABLE) == 0) G.f |= G_SCRIPT_AUTOEXEC;
@@ -424,7 +433,7 @@ int WM_read_homefile(bContext *C, ReportList *reports, short from_memory)
#ifdef WITH_PYTHON
if(CTX_py_init_get(C)) {
/* sync addons, these may have changed from the defaults */
- BPY_string_exec(C, "__import__('bpy').utils.addon_reset_all()");
+ BPY_string_exec(C, "__import__('addon_utils').reset_all()");
BPY_driver_reset();
BPY_modules_load_user(C);
diff --git a/source/blender/windowmanager/intern/wm_gesture.c b/source/blender/windowmanager/intern/wm_gesture.c
index 0398f44a8c9..eddd7ae1642 100644
--- a/source/blender/windowmanager/intern/wm_gesture.c
+++ b/source/blender/windowmanager/intern/wm_gesture.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm_gesture.c
+ * \ingroup wm
+ */
+
+
#include "DNA_screen_types.h"
#include "DNA_vec_types.h"
#include "DNA_userdef_types.h"
diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c
index bce61dae013..a797b461025 100644
--- a/source/blender/windowmanager/intern/wm_init_exit.c
+++ b/source/blender/windowmanager/intern/wm_init_exit.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm_init_exit.c
+ * \ingroup wm
+ */
+
+
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c
index 591ed5c33b5..4a8553e16f6 100644
--- a/source/blender/windowmanager/intern/wm_jobs.c
+++ b/source/blender/windowmanager/intern/wm_jobs.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm_jobs.c
+ * \ingroup wm
+ */
+
+
#include <string.h>
#include "DNA_windowmanager_types.h"
diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c
index 7d67245d077..57b84fc18f4 100644
--- a/source/blender/windowmanager/intern/wm_keymap.c
+++ b/source/blender/windowmanager/intern/wm_keymap.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm_keymap.c
+ * \ingroup wm
+ */
+
+
#include <string.h>
#include "DNA_object_types.h"
@@ -435,6 +440,7 @@ static wmKeyMapItem *wm_keymap_item_find_handlers(const bContext *C, ListBase *h
if(keymap && (!keymap->poll || keymap->poll((bContext*)C))) {
for(kmi=keymap->items.first; kmi; kmi=kmi->next) {
+
if(strcmp(kmi->idname, opname) == 0 && WM_key_event_string(kmi->type)[0]) {
if (hotkey)
if (!ISHOTKEY(kmi->type))
@@ -798,9 +804,19 @@ wmKeyMap *WM_keymap_guess_opname(const bContext *C, const char *opname)
/* Editing Modes */
else if (strstr(opname, "MESH_OT")) {
km = WM_keymap_find_all(C, "Mesh", 0, 0);
+
+ /* some mesh operators are active in object mode too, like add-prim */
+ if(km && km->poll && km->poll((bContext *)C)==0) {
+ km = WM_keymap_find_all(C, "Object Mode", 0, 0);
+ }
}
else if (strstr(opname, "CURVE_OT")) {
km = WM_keymap_find_all(C, "Curve", 0, 0);
+
+ /* some curve operators are active in object mode too, like add-prim */
+ if(km && km->poll && km->poll((bContext *)C)==0) {
+ km = WM_keymap_find_all(C, "Object Mode", 0, 0);
+ }
}
else if (strstr(opname, "ARMATURE_OT")) {
km = WM_keymap_find_all(C, "Armature", 0, 0);
@@ -813,6 +829,11 @@ wmKeyMap *WM_keymap_guess_opname(const bContext *C, const char *opname)
}
else if (strstr(opname, "MBALL_OT")) {
km = WM_keymap_find_all(C, "Metaball", 0, 0);
+
+ /* some mball operators are active in object mode too, like add-prim */
+ if(km && km->poll && km->poll((bContext *)C)==0) {
+ km = WM_keymap_find_all(C, "Object Mode", 0, 0);
+ }
}
else if (strstr(opname, "LATTICE_OT")) {
km = WM_keymap_find_all(C, "Lattice", 0, 0);
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index d61e42c2353..cda771d7eb6 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm_operators.c
+ * \ingroup wm
+ */
+
+
#include <float.h>
#include <string.h>
#include <ctype.h>
@@ -382,21 +387,24 @@ void WM_operatortype_append_macro_ptr(void (*opfunc)(wmOperatorType*, void*), vo
wmOperatorTypeMacro *WM_operatortype_macro_define(wmOperatorType *ot, const char *idname)
{
wmOperatorTypeMacro *otmacro= MEM_callocN(sizeof(wmOperatorTypeMacro), "wmOperatorTypeMacro");
-
+
BLI_strncpy(otmacro->idname, idname, OP_MAX_TYPENAME);
/* do this on first use, since operatordefinitions might have been not done yet */
WM_operator_properties_alloc(&(otmacro->ptr), &(otmacro->properties), idname);
WM_operator_properties_sanitize(otmacro->ptr, 1);
-
+
BLI_addtail(&ot->macro, otmacro);
{
+ /* operator should always be found but in the event its not. dont segfault */
wmOperatorType *otsub = WM_operatortype_find(idname, 0);
- RNA_def_pointer_runtime(ot->srna, otsub->idname, otsub->srna,
- otsub->name, otsub->description);
+ if(otsub) {
+ RNA_def_pointer_runtime(ot->srna, otsub->idname, otsub->srna,
+ otsub->name, otsub->description);
+ }
}
-
+
return otmacro;
}
diff --git a/source/blender/windowmanager/intern/wm_subwindow.c b/source/blender/windowmanager/intern/wm_subwindow.c
index c08df0ccd75..1117d296f94 100644
--- a/source/blender/windowmanager/intern/wm_subwindow.c
+++ b/source/blender/windowmanager/intern/wm_subwindow.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +30,11 @@
*
*/
+/** \file blender/windowmanager/intern/wm_subwindow.c
+ * \ingroup wm
+ */
+
+
#include <string.h>
#include "MEM_guardedalloc.h"
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index 1022cff5062..be33264cafd 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/intern/wm_window.c
+ * \ingroup wm
+ */
+
+
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
diff --git a/source/blender/windowmanager/wm.h b/source/blender/windowmanager/wm.h
index e1ca1793c04..f73652125b1 100644
--- a/source/blender/windowmanager/wm.h
+++ b/source/blender/windowmanager/wm.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file blender/windowmanager/wm.h
+ * \ingroup wm
+ */
+
#ifndef WM_H
#define WM_H
diff --git a/source/blender/windowmanager/wm_cursors.h b/source/blender/windowmanager/wm_cursors.h
index c42e7413f1a..c858b9d94f3 100644
--- a/source/blender/windowmanager/wm_cursors.h
+++ b/source/blender/windowmanager/wm_cursors.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/wm_cursors.h
+ * \ingroup wm
+ */
+
+
#ifndef WM_CURSORS_H
diff --git a/source/blender/windowmanager/wm_draw.h b/source/blender/windowmanager/wm_draw.h
index 762d759c936..3112751a4c0 100644
--- a/source/blender/windowmanager/wm_draw.h
+++ b/source/blender/windowmanager/wm_draw.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/wm_draw.h
+ * \ingroup wm
+ */
+
+
#ifndef WM_DRAW_H
#define WM_DRAW_H
diff --git a/source/blender/windowmanager/wm_event_system.h b/source/blender/windowmanager/wm_event_system.h
index 4888f9aced3..6ad9d1daede 100644
--- a/source/blender/windowmanager/wm_event_system.h
+++ b/source/blender/windowmanager/wm_event_system.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file blender/windowmanager/wm_event_system.h
+ * \ingroup wm
+ */
+
#ifndef WM_EVENT_SYSTEM_H
#define WM_EVENT_SYSTEM_H
diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h
index c3573f86c6d..39545a0ad01 100644
--- a/source/blender/windowmanager/wm_event_types.h
+++ b/source/blender/windowmanager/wm_event_types.h
@@ -25,6 +25,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/wm_event_types.h
+ * \ingroup wm
+ */
+
+
/*
* These define have its origin at sgi, where all device defines were written down in device.h.
* Blender copied the conventions quite some, and expanded it with internal new defines (ton)
diff --git a/source/blender/windowmanager/wm_files.h b/source/blender/windowmanager/wm_files.h
index 6a07218bebd..c9e5d294853 100644
--- a/source/blender/windowmanager/wm_files.h
+++ b/source/blender/windowmanager/wm_files.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file blender/windowmanager/wm_files.h
+ * \ingroup wm
+ */
+
#ifndef WM_FILES_H
#define WM_FILES_H
diff --git a/source/blender/windowmanager/wm_subwindow.h b/source/blender/windowmanager/wm_subwindow.h
index 9cabf2fdc7c..e0901ee24aa 100644
--- a/source/blender/windowmanager/wm_subwindow.h
+++ b/source/blender/windowmanager/wm_subwindow.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/wm_subwindow.h
+ * \ingroup wm
+ */
+
+
#ifndef WM_SUBWINDOW_H
#define WM_SUBWINDOW_H
diff --git a/source/blender/windowmanager/wm_window.h b/source/blender/windowmanager/wm_window.h
index 9c82f276acf..f28f1ef0fcc 100644
--- a/source/blender/windowmanager/wm_window.h
+++ b/source/blender/windowmanager/wm_window.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/windowmanager/wm_window.h
+ * \ingroup wm
+ */
+
+
#ifndef WM_WINDOW_H
#define WM_WINDOW_H
diff --git a/source/blenderplayer/CMakeLists.txt b/source/blenderplayer/CMakeLists.txt
index 8ef06e9fc21..760ee168294 100644
--- a/source/blenderplayer/CMakeLists.txt
+++ b/source/blenderplayer/CMakeLists.txt
@@ -33,11 +33,6 @@ if(WITH_CODEC_QUICKTIME)
add_definitions(-DWITH_QUICKTIME)
endif()
-if(CMAKE_SYSTEM_NAME MATCHES "Linux")
- add_definitions(-DWITH_BINRELOC)
- blender_include_dirs(${BINRELOC_INC})
-endif()
-
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/dna.c
COMMAND ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/makesdna ${CMAKE_CURRENT_BINARY_DIR}/dna.c ${CMAKE_SOURCE_DIR}/source/blender/makesdna/
diff --git a/source/blenderplayer/bad_level_call_stubs/CMakeLists.txt b/source/blenderplayer/bad_level_call_stubs/CMakeLists.txt
index 55f354a57a8..73fa01ebff2 100644
--- a/source/blenderplayer/bad_level_call_stubs/CMakeLists.txt
+++ b/source/blenderplayer/bad_level_call_stubs/CMakeLists.txt
@@ -32,6 +32,7 @@ set(INC
..
../../../intern/guardedalloc
../../../source/blender/makesdna
+ ../../../source/blender/blenloader
../../../source/blender/makesrna
../../../source/blender/blenkernel
)
diff --git a/source/blenderplayer/bad_level_call_stubs/SConscript b/source/blenderplayer/bad_level_call_stubs/SConscript
index 0217f1aeacc..5efe9aa5761 100644
--- a/source/blenderplayer/bad_level_call_stubs/SConscript
+++ b/source/blenderplayer/bad_level_call_stubs/SConscript
@@ -6,6 +6,7 @@ sources = 'stubs.c'
incs = '#/intern/guardedalloc'
incs += ' #/source/blender/makesdna'
incs += ' #/source/blender/makesrna'
+incs += ' #/source/blender/blenloader'
defs = ''
if env['WITH_BF_INTERNATIONAL']:
diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c
index c831c2a477e..292e9ddd1ff 100644
--- a/source/blenderplayer/bad_level_call_stubs/stubs.c
+++ b/source/blenderplayer/bad_level_call_stubs/stubs.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* BKE_bad_level_calls function stubs
*/
+/** \file blenderplayer/bad_level_call_stubs/stubs.c
+ * \ingroup blc
+ */
+
+
#ifdef WITH_GAMEENGINE
#include <stdlib.h>
#include "DNA_listBase.h"
@@ -383,47 +388,6 @@ char *WM_operator_pystring(struct bContext *C, struct wmOperatorType *ot, struct
struct wmKeyMapItem *WM_modalkeymap_add_item(struct wmKeyMap *km, int type, int val, int modifier, int keymodifier, int value){return (struct wmKeyMapItem *)NULL;}
struct wmKeyMap *WM_modalkeymap_add(struct wmKeyConfig *keyconf, char *idname, EnumPropertyItem *items){return (struct wmKeyMap *) NULL;}
-/* intern/decimation */
-#if 1
-int LOD_FreeDecimationData(struct LOD_Decimation_Info *info){return 0;}
-int LOD_CollapseEdge(struct LOD_Decimation_Info *info){return 0;}
-int LOD_PreprocessMesh(struct LOD_Decimation_Info *info){return 0;}
-int LOD_LoadMesh(struct LOD_Decimation_Info *info){return 0;}
-#endif
-
-/* smoke */
-void LzmaCompress(void) { return; }
-void LzmaUncompress(void) {return;}
-/* smoke is included anyway
-void smoke_export(void) {return;}
-void smoke_init(void) {return;}
-void smoke_turbulence_init(void) {return;}
-void smoke_turbulence_initBlenderRNA(void) {return;}
-void smoke_initBlenderRNA(void) {return;}
-void smoke_free(void) {return;}
-void smoke_turbulence_free(void) {return;}
-void smoke_turbulence_step(void) {return;}
-void smoke_dissolve(void) {return;}
-void smoke_get_density(void) {return;}
-void smoke_get_heat(void) {return;}
-void smoke_get_velocity_x(void) {return;}
-void smoke_get_velocity_y(void) {return;}
-void smoke_get_velocity_z(void) {return;}
-void smoke_get_obstacle(void) {return;}
-void smoke_get_index(void) {return;}
-void smoke_step(void) {return;}
-*/
-
-/* sculpt */
-/*
- void ED_sculpt_force_update(struct bContext *C) {}
-struct SculptUndoNode *sculpt_undo_push_node(struct SculptSession *ss, struct PBVHNode *node) {return (struct SculptUndoNode *)NULL;}
-void sculpt_undo_push_end(void) {}
-void sculpt_undo_push_begin(char *name) {}
-struct SculptUndoNode *sculpt_undo_get_node(struct PBVHNode *node) {return (struct SculptUndoNode *) NULL;}
-struct MultiresModifierData *sculpt_multires_active(struct Scene *scene, struct Object *ob) {return (struct MultiresModifierData *) NULL;}
-int sculpt_modifiers_active(struct Scene *scene, struct Object *ob) {return 0;}
-*/
int sculpt_get_brush_size(struct Brush *brush) {return 0;}
void sculpt_set_brush_size(struct Brush *brush, int size) {}
int sculpt_get_lock_brush_size(struct Brush *brush){ return 0;}
@@ -435,27 +399,4 @@ void ED_sculpt_modifiers_changed(struct Object *ob){};
char blender_path[] = "";
-/* CSG */
-#if 1
-struct CSG_BooleanOperation * CSG_NewBooleanFunction( void ){return (struct CSG_BooleanOperation *) NULL;}
-void CSG_FreeBooleanOperation(struct CSG_BooleanOperation *operation){return;}
-void CSG_FreeFaceDescriptor(struct CSG_FaceIteratorDescriptor * f_descriptor){return;}
-void CSG_FreeVertexDescriptor(struct CSG_VertexIteratorDescriptor * v_descriptor){return;}
-int CSG_OutputFaceDescriptor(struct CSG_BooleanOperation * operation, struct CSG_FaceIteratorDescriptor * output){return 0;}
-int CSG_OutputVertexDescriptor(struct CSG_BooleanOperation * operation, struct CSG_VertexIteratorDescriptor *output){return 0;}
-
-typedef struct CSG_VertexIteratorDescriptor {int a;} CSG_VertexIteratorDescriptor; //workaround to build CSG_PerformanceBoolean Operation
-typedef struct CSG_FaceIteratorDescriptor {int a;} CSG_FaceIteratorDescriptor; //workaround to build CSG_PerformanceBoolean Operation
-typedef struct CSG_OperationType {int a;} CSG_OperationType; //workaround to build CSG_PerformanceBoolean Operation
-
-int CSG_PerformBooleanOperation(
- struct CSG_BooleanOperation *operation,
- CSG_OperationType op_type,
- CSG_FaceIteratorDescriptor obAFaces,
- CSG_VertexIteratorDescriptor obAVertices,
- CSG_FaceIteratorDescriptor obBFaces,
- CSG_VertexIteratorDescriptor obBVertices)
- { return 0;}
-
-#endif
#endif // WITH_GAMEENGINE
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index c1441dd9d38..64c4df0b69a 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -34,6 +34,7 @@ blender_include_dirs(
../../intern/guardedalloc
../blender/blenlib
../blender/blenkernel
+ ../blender/blenloader
../blender/editors/include
../blender/makesrna
../blender/imbuf
@@ -52,6 +53,10 @@ if(WITH_IMAGE_OPENEXR)
add_definitions(-DWITH_OPENEXR)
endif()
+if(WITH_IMAGE_OPENJPEG)
+ add_definitions(-DWITH_OPENJPEG)
+endif()
+
if(WITH_IMAGE_TIFF)
add_definitions(-DWITH_TIFF)
endif()
@@ -86,7 +91,7 @@ if(NOT WITH_SDL)
add_definitions(-DDISABLE_SDL)
endif()
-if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+if(WITH_BINRELOC)
add_definitions(-DWITH_BINRELOC)
blender_include_dirs(${BINRELOC_INC})
endif()
@@ -103,13 +108,17 @@ if(WIN32 AND NOT UNIX)
endif()
if(WITH_BUILDINFO)
+ # --------------------------------------------------------------------------
+ # These defines could all be moved into the header below
string(REPLACE " " "\ " BUILDINFO_CFLAGS "${CMAKE_C_FLAGS}")
string(REPLACE " " "\ " BUILDINFO_CXXFLAGS "${CMAKE_CXX_FLAGS}")
string(REPLACE " " "\ " BUILDINFO_LINKFLAGS "${PLATFORM_LINKFLAGS}")
add_definitions(
- -DBUILD_DATE="${BUILD_DATE}"
- -DBUILD_TIME="${BUILD_TIME}"
- -DBUILD_REV="${BUILD_REV}"
+ # # define in header now, else these get out of date on rebuilds.
+ # -DBUILD_DATE="${BUILD_DATE}"
+ # -DBUILD_TIME="${BUILD_TIME}"
+ # -DBUILD_REV="${BUILD_REV}"
+ -DWITH_BUILDINFO_HEADER # alternative to lines above
-DBUILD_PLATFORM="${CMAKE_SYSTEM_NAME}"
-DBUILD_TYPE="${CMAKE_BUILD_TYPE}"
-DBUILD_CFLAGS="${BUILDINFO_CFLAGS}"
@@ -118,14 +127,58 @@ if(WITH_BUILDINFO)
-DBUILD_SYSTEM="CMake"
)
+ # --------------------------------------------------------------------------
+ # write header for values that change each build
+ # note, generaed file is in build dir's source/creator
+ # except when used as an include path.
+
+ # include the output directory, where the buildinfo.h file is generated
+ include_directories(${CMAKE_BINARY_DIR}/source/creator)
+
+ # a custom target that is always built
+ add_custom_target(buildinfo ALL
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.h)
+
+ # creates svnheader.h using cmake script
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.h
+ COMMAND ${CMAKE_COMMAND}
+ -DSOURCE_DIR=${CMAKE_SOURCE_DIR}
+ -P ${CMAKE_SOURCE_DIR}/build_files/cmake/buildinfo.cmake)
+
+ # buildinfo.h is a generated file
+ set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.h
+ PROPERTIES GENERATED TRUE
+ HEADER_FILE_ONLY TRUE)
+
+ # add deps below, after adding blender
+ # -------------- done with header values.
+
list(APPEND SRC
buildinfo.c
)
endif()
# message(STATUS "Configuring blender")
+if(WITH_PYTHON_MODULE)
+ add_definitions(-DWITH_PYTHON_MODULE)
+
+ # creates ./bin/bpy.so which can be imported as a python module.
+ add_library(blender SHARED ${SRC})
+ set_target_properties(
+ blender
+ PROPERTIES
+ PREFIX ""
+ OUTPUT_NAME bpy
+ LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/
+ )
+else()
+ add_executable(blender ${EXETYPE} ${SRC})
+endif()
-add_executable(blender ${EXETYPE} ${SRC})
+if(WITH_BUILDINFO)
+ # explicitly say that the executable depends on the buildinfo
+ add_dependencies(blender buildinfo)
+endif()
# Post build steps for bundling/packaging.
@@ -423,7 +476,7 @@ if(WITH_INSTALL)
COMMAND cp -Rf ${SOURCEINFO} ${TARGETDIR}/blender.app/Contents/
COMMAND cp -Rf ${SOURCEDIR}/Contents/PkgInfo ${TARGETDIR}/blender.app/Contents/
COMMAND cp -Rf ${SOURCEDIR}/Contents/Resources ${TARGETDIR}/blender.app/Contents/
- COMMAND cat ${SOURCEINFO} | sed s/VERSION/`cat ${CMAKE_SOURCE_DIR}/release/VERSION`/ | sed s/DATE/`date +'%Y-%b-%d'`/ > ${TARGETINFO}
+ COMMAND cat ${SOURCEINFO} | sed s/VERSION/${BLENDER_VERSION}${BLENDER_VERSION_CHAR}/ | sed s/DATE/`date +'%Y-%b-%d'`/ > ${TARGETINFO}
COMMAND rm -Rf ${TARGETDIR}/blender.app/Contents/MacOS/${BLENDER_VERSION}
COMMAND mkdir ${TARGETDIR}/blender.app/Contents/MacOS/${BLENDER_VERSION}
COMMAND mkdir ${TARGETDIR}/blender.app/Contents/MacOS/${BLENDER_VERSION}/datafiles/
@@ -576,7 +629,7 @@ endif()
bf_intern_mikktspace
)
- if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ if(WITH_BINRELOC)
list(APPEND BLENDER_SORTED_LIBS extern_binreloc)
endif()
diff --git a/source/creator/buildinfo.c b/source/creator/buildinfo.c
index c3b9ea56c45..48a4352b11b 100644
--- a/source/creator/buildinfo.c
+++ b/source/creator/buildinfo.c
@@ -27,15 +27,26 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file creator/buildinfo.c
+ * \ingroup creator
+ */
+
+
+#ifdef WITH_BUILDINFO_HEADER
+#include "buildinfo.h"
+#endif
+
#ifdef BUILD_DATE
/* copied from BLI_utildefines.h */
#define STRINGIFY_ARG(x) #x
#define STRINGIFY(x) STRINGIFY_ARG(x)
+/* currently only these are defined in the header */
char build_date[]= STRINGIFY(BUILD_DATE);
char build_time[]= STRINGIFY(BUILD_TIME);
char build_rev[]= STRINGIFY(BUILD_REV);
+
char build_platform[]= STRINGIFY(BUILD_PLATFORM);
char build_type[]= STRINGIFY(BUILD_TYPE);
diff --git a/source/creator/creator.c b/source/creator/creator.c
index 30e3b8a01a7..5f639b7ed7c 100644
--- a/source/creator/creator.c
+++ b/source/creator/creator.c
@@ -27,14 +27,18 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file creator/creator.c
+ * \ingroup creator
+ */
+
+
#if defined(__linux__) && defined(__GNUC__)
#define _GNU_SOURCE
#include <fenv.h>
#endif
-#define OSX_SSE_FPE (defined(__APPLE__) && (defined(__i386__) || defined(__x86_64__)))
-
-#if OSX_SSE_FPE
+#if (defined(__APPLE__) && (defined(__i386__) || defined(__x86_64__)))
+#define OSX_SSE_FPE
#include <xmmintrin.h>
#endif
@@ -99,6 +103,10 @@
#include "FRS_freestyle.h"
+#ifdef WITH_BUILDINFO_HEADER
+#define BUILD_DATE
+#endif
+
/* for passing information between creator and gameengine */
#ifdef WITH_GAMEENGINE
#include "GEN_messaging.h"
@@ -143,19 +151,20 @@ extern int pluginapi_force_ref(void); /* from blenpluginapi:pluginapi.c */
char bprogname[FILE_MAX]; /* from blenpluginapi:pluginapi.c */
char btempdir[FILE_MAX];
-#define BLEND_VERSION_STRING_FMT "Blender %d.%02d (sub %d) Build\n", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION
+#define BLEND_VERSION_STRING_FMT "Blender %d.%02d (sub %d)\n", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION
/* Initialise callbacks for the modules that need them */
static void setCallbacks(void);
/* set breakpoints here when running in debug mode, useful to catch floating point errors */
-#if defined(__sgi) || defined(__linux__) || defined(_WIN32) || OSX_SSE_FPE
+#if defined(__sgi) || defined(__linux__) || defined(_WIN32) || defined(OSX_SSE_FPE)
static void fpe_handler(int UNUSED(sig))
{
// printf("SIGFPE trapped\n");
}
#endif
+#ifndef WITH_PYTHON_MODULE
/* handling ctrl-c event in console */
static void blender_esc(int sig)
{
@@ -172,6 +181,7 @@ static void blender_esc(int sig)
count++;
}
}
+#endif
/* buildinfo can have quotes */
#ifdef BUILD_DATE
@@ -379,7 +389,7 @@ static int debug_mode(int UNUSED(argc), const char **UNUSED(argv), void *data)
static int set_fpe(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data))
{
-#if defined(__sgi) || defined(__linux__) || defined(_WIN32) || OSX_SSE_FPE
+#if defined(__sgi) || defined(__linux__) || defined(_WIN32) || defined(OSX_SSE_FPE)
/* zealous but makes float issues a heck of a lot easier to find!
* set breakpoints on fpe_handler */
signal(SIGFPE, fpe_handler);
@@ -387,7 +397,7 @@ static int set_fpe(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(dat
# if defined(__linux__) && defined(__GNUC__)
feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW );
# endif /* defined(__linux__) && defined(__GNUC__) */
-# if OSX_SSE_FPE
+# if defined(OSX_SSE_FPE)
/* OSX uses SSE for floating point by default, so here
* use SSE instructions to throw floating point exceptions */
_MM_SET_EXCEPTION_MASK(_MM_MASK_MASK &~
@@ -937,7 +947,7 @@ static int set_addons(int argc, const char **argv, void *data)
const int slen= strlen(argv[1]) + 10;
char *str= malloc(slen);
bContext *C= data;
- BLI_snprintf(str, slen, "[__import__('bpy').utils.addon_enable(i) for i in '%s'.split(',')]", argv[1]);
+ BLI_snprintf(str, slen, "[__import__('addon_utils').enable(i) for i in '%s'.split(',')]", argv[1]);
BPY_CTX_SETUP(BPY_string_exec(C, str));
free(str);
#else
@@ -1113,12 +1123,21 @@ static void setupArguments(bContext *C, bArgs *ba, SYS_SystemHandle *syshandle)
}
-int main(int argc, char **argv)
+#ifdef WITH_PYTHON_MODULE
+/* allow python module to call main */
+#define main main_python
+#endif
+
+int main(int argc, const char **argv)
{
SYS_SystemHandle syshandle;
bContext *C= CTX_create();
bArgs *ba;
+#ifdef WITH_PYTHON_MODULE
+#undef main
+#endif
+
#ifdef WITH_BINRELOC
br_init( NULL );
#endif
@@ -1194,9 +1213,12 @@ int main(int argc, char **argv)
setuid(getuid()); /* end superuser */
#endif
-
+#ifdef WITH_PYTHON_MODULE
+ G.background= 1; /* python module mode ALWAYS runs in background mode (for now) */
+#else
/* for all platforms, even windos has it! */
if(G.background) signal(SIGINT, blender_esc); /* ctrl c out bg render */
+#endif
/* background render uses this font too */
BKE_font_register_builtin(datatoc_Bfont, datatoc_Bfont_size);
@@ -1254,6 +1276,10 @@ int main(int argc, char **argv)
BLI_argsFree(ba);
+#ifdef WITH_PYTHON_MODULE
+ return 0; /* keep blender in background mode running */
+#endif
+
if(G.background) {
/* actually incorrect, but works for now (ton) */
WM_exit(C);
diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
index f6e29fe0dbb..b94d15d2fbf 100644
--- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
+++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Blender's Ketsji startpoint
*/
+/** \file gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
+ * \ingroup blroutines
+ */
+
+
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
index f1e30ed4227..9dd63fa3089 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
+ * \ingroup blroutines
+ */
+
+
#include "KX_BlenderCanvas.h"
#include "DNA_screen_types.h"
#include "stdio.h"
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
index 42f956cafcd..b5b5908e7ae 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_BlenderCanvas.h
+ * \ingroup blroutines
+ */
+
#ifndef __KX_BLENDERCANVAS
#define __KX_BLENDERCANVAS
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp b/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
index 6b1ed71f465..92cb0167192 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/BlenderRoutines/KX_BlenderGL.cpp
+ * \ingroup blroutines
+ */
+
+
#include "KX_BlenderGL.h"
/*
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderGL.h b/source/gameengine/BlenderRoutines/KX_BlenderGL.h
index 6d481470517..4e206150081 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderGL.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderGL.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_BlenderGL.h
+ * \ingroup blroutines
+ */
+
#ifndef __BLENDERGL
#define __BLENDERGL
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.cpp b/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.cpp
index 697687d1b95..84af5b28296 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,5 +26,10 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/BlenderRoutines/KX_BlenderInputDevice.cpp
+ * \ingroup blroutines
+ */
+
#include "KX_BlenderInputDevice.h"
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h b/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h
index b7f7be4a279..67a2279d824 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_BlenderInputDevice.h
+ * \ingroup blroutines
+ */
+
#ifndef __KX_BLENDERINPUTDEVICE
#define __KX_BLENDERINPUTDEVICE
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
index bc7996a98c0..9ccf55a62a3 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
+ * \ingroup blroutines
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
// annoying warnings about truncated STL debug info
#pragma warning (disable :4786)
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
index eab052895db..b4eb7bf6083 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_BlenderKeyboardDevice.h
+ * \ingroup blroutines
+ */
+
#ifndef __KX_BLENDERKEYBOARDDEVICE
#define __KX_BLENDERKEYBOARDDEVICE
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.cpp b/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.cpp
index 0326b53dfb1..2432bf9c25a 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/BlenderRoutines/KX_BlenderMouseDevice.cpp
+ * \ingroup blroutines
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
// annoying warnings about truncated STL debug info
#pragma warning (disable :4786)
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.h b/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.h
index ce067ffb379..e192259e0d7 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderMouseDevice.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_BlenderMouseDevice.h
+ * \ingroup blroutines
+ */
+
#ifndef __KX_BLENDERMOUSEDEVICE
#define __KX_BLENDERMOUSEDEVICE
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
index bbc2389b875..fca160c60a6 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
+ * \ingroup blroutines
+ */
+
+
#include "GL/glew.h"
#include "RAS_IRenderTools.h"
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
index 7d4728f5ef0..8755ff0a4a1 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_BlenderRenderTools.h
+ * \ingroup blroutines
+ */
+
#ifndef __KX_BLENDERRENDERTOOLS
#define __KX_BLENDERRENDERTOOLS
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderSystem.cpp b/source/gameengine/BlenderRoutines/KX_BlenderSystem.cpp
index a6a9ee2133f..f6666e28f31 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderSystem.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderSystem.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/BlenderRoutines/KX_BlenderSystem.cpp
+ * \ingroup blroutines
+ */
+
+
#include "KX_ISystem.h"
#if defined(WIN32) && !defined(FREE_WINDOWS)
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderSystem.h b/source/gameengine/BlenderRoutines/KX_BlenderSystem.h
index fb40ded9292..244476d8cf6 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderSystem.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderSystem.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,12 +26,15 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_BlenderSystem.h
+ * \ingroup blroutines
+ * \brief Blender System embedding. Needed when gameengine runs embedded within Blender.
+ */
+
#ifndef __KX_BLENDERSYSTEM
#define __KX_BLENDERSYSTEM
-/**
- * Blender System embedding. Needed when gameengine runs embedded within Blender.
- */
#include "KX_ISystem.h"
#ifdef WITH_CXX_GUARDEDALLOC
@@ -47,8 +50,6 @@ public:
virtual ~KX_BlenderSystem() {};
virtual double GetTimeInSeconds();
-
-
#ifdef WITH_CXX_GUARDEDALLOC
public:
void *operator new(size_t num_bytes) { return MEM_mallocN(num_bytes, "GE:KX_BlenderSystem"); }
diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp
index 16c687df5fc..c00e7ec7e29 100644
--- a/source/gameengine/Converter/BL_ActionActuator.cpp
+++ b/source/gameengine/Converter/BL_ActionActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/BL_ActionActuator.cpp
+ * \ingroup bgeconv
+ */
+
+
#include "SCA_LogicManager.h"
#include "BL_ActionActuator.h"
#include "BL_ArmatureObject.h"
diff --git a/source/gameengine/Converter/BL_ActionActuator.h b/source/gameengine/Converter/BL_ActionActuator.h
index bfbb160e464..c6e661f1549 100644
--- a/source/gameengine/Converter/BL_ActionActuator.h
+++ b/source/gameengine/Converter/BL_ActionActuator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file BL_ActionActuator.h
+ * \ingroup bgeconv
+ */
+
#ifndef BL_ACTIONACTUATOR
#define BL_ACTIONACTUATOR
diff --git a/source/gameengine/Converter/BL_ArmatureActuator.cpp b/source/gameengine/Converter/BL_ArmatureActuator.cpp
index db36f7e7c38..efd1a73a448 100644
--- a/source/gameengine/Converter/BL_ArmatureActuator.cpp
+++ b/source/gameengine/Converter/BL_ArmatureActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/BL_ArmatureActuator.cpp
+ * \ingroup bgeconv
+ */
+
+
#include "DNA_action_types.h"
#include "DNA_constraint_types.h"
#include "DNA_actuator_types.h"
diff --git a/source/gameengine/Converter/BL_ArmatureActuator.h b/source/gameengine/Converter/BL_ArmatureActuator.h
index b3f9ee2f1f2..4615fb06714 100644
--- a/source/gameengine/Converter/BL_ArmatureActuator.h
+++ b/source/gameengine/Converter/BL_ArmatureActuator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file BL_ArmatureActuator.h
+ * \ingroup bgeconv
+ */
+
#ifndef BL_ARMATUREACTUATOR
#define BL_ARMATUREACTUATOR
diff --git a/source/gameengine/Converter/BL_ArmatureChannel.cpp b/source/gameengine/Converter/BL_ArmatureChannel.cpp
index 5fa791a233a..626d8a19deb 100644
--- a/source/gameengine/Converter/BL_ArmatureChannel.cpp
+++ b/source/gameengine/Converter/BL_ArmatureChannel.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/BL_ArmatureChannel.cpp
+ * \ingroup bgeconv
+ */
+
+
#include "DNA_armature_types.h"
#include "BL_ArmatureChannel.h"
#include "BL_ArmatureObject.h"
diff --git a/source/gameengine/Converter/BL_ArmatureChannel.h b/source/gameengine/Converter/BL_ArmatureChannel.h
index e1c18215c53..0c2c27a7fab 100644
--- a/source/gameengine/Converter/BL_ArmatureChannel.h
+++ b/source/gameengine/Converter/BL_ArmatureChannel.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file BL_ArmatureChannel.h
+ * \ingroup bgeconv
+ */
+
#ifndef __BL_ARMATURECHANNEL
#define __BL_ARMATURECHANNEL
diff --git a/source/gameengine/Converter/BL_ArmatureConstraint.cpp b/source/gameengine/Converter/BL_ArmatureConstraint.cpp
index fa7f8a1bea1..c07fe6b3b41 100644
--- a/source/gameengine/Converter/BL_ArmatureConstraint.cpp
+++ b/source/gameengine/Converter/BL_ArmatureConstraint.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/BL_ArmatureConstraint.cpp
+ * \ingroup bgeconv
+ */
+
+
#include "DNA_constraint_types.h"
#include "DNA_action_types.h"
#include "BL_ArmatureConstraint.h"
diff --git a/source/gameengine/Converter/BL_ArmatureConstraint.h b/source/gameengine/Converter/BL_ArmatureConstraint.h
index 92da8327edb..1dd685b8cba 100644
--- a/source/gameengine/Converter/BL_ArmatureConstraint.h
+++ b/source/gameengine/Converter/BL_ArmatureConstraint.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file BL_ArmatureConstraint.h
+ * \ingroup bgeconv
+ */
+
#ifndef __BL_ARMATURECONSTRAINT
#define __BL_ARMATURECONSTRAINT
diff --git a/source/gameengine/Converter/BL_ArmatureObject.cpp b/source/gameengine/Converter/BL_ArmatureObject.cpp
index be42b80f916..952af4db8bb 100644
--- a/source/gameengine/Converter/BL_ArmatureObject.cpp
+++ b/source/gameengine/Converter/BL_ArmatureObject.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/BL_ArmatureObject.cpp
+ * \ingroup bgeconv
+ */
+
+
#include "BL_ArmatureObject.h"
#include "BL_ActionActuator.h"
#include "KX_BlenderSceneConverter.h"
diff --git a/source/gameengine/Converter/BL_ArmatureObject.h b/source/gameengine/Converter/BL_ArmatureObject.h
index 525c265d607..8490bfadac2 100644
--- a/source/gameengine/Converter/BL_ArmatureObject.h
+++ b/source/gameengine/Converter/BL_ArmatureObject.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file BL_ArmatureObject.h
+ * \ingroup bgeconv
+ */
+
#ifndef BL_ARMATUREOBJECT
#define BL_ARMATUREOBJECT
diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp
index f1b70288c10..d69ae6b1821 100644
--- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp
+++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Convert blender data to ketsji
*/
+/** \file gameengine/Converter/BL_BlenderDataConversion.cpp
+ * \ingroup bgeconv
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif
diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.h b/source/gameengine/Converter/BL_BlenderDataConversion.h
index 66419dbccd1..cea9f7f2a8b 100644
--- a/source/gameengine/Converter/BL_BlenderDataConversion.h
+++ b/source/gameengine/Converter/BL_BlenderDataConversion.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file BL_BlenderDataConversion.h
+ * \ingroup bgeconv
+ */
+
#ifndef __BLENDER_CONVERT
#define __BLENDER_CONVERT
diff --git a/source/gameengine/Converter/BL_DeformableGameObject.cpp b/source/gameengine/Converter/BL_DeformableGameObject.cpp
index f076d52c745..bfba054d0d4 100644
--- a/source/gameengine/Converter/BL_DeformableGameObject.cpp
+++ b/source/gameengine/Converter/BL_DeformableGameObject.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/BL_DeformableGameObject.cpp
+ * \ingroup bgeconv
+ */
+
+
#include "BL_DeformableGameObject.h"
#include "BL_ShapeDeformer.h"
#include "BL_ShapeActionActuator.h"
diff --git a/source/gameengine/Converter/BL_DeformableGameObject.h b/source/gameengine/Converter/BL_DeformableGameObject.h
index 12f641eee96..6bcdaff10e3 100644
--- a/source/gameengine/Converter/BL_DeformableGameObject.h
+++ b/source/gameengine/Converter/BL_DeformableGameObject.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file BL_DeformableGameObject.h
+ * \ingroup bgeconv
+ */
+
#ifndef BL_DEFORMABLEGAMEOBJECT
#define BL_DEFORMABLEGAMEOBJECT
diff --git a/source/gameengine/Converter/BL_MeshDeformer.cpp b/source/gameengine/Converter/BL_MeshDeformer.cpp
index 25dd8678e60..2a54ea7d9ae 100644
--- a/source/gameengine/Converter/BL_MeshDeformer.cpp
+++ b/source/gameengine/Converter/BL_MeshDeformer.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Simple deformation controller that restores a mesh to its rest position
*/
+/** \file gameengine/Converter/BL_MeshDeformer.cpp
+ * \ingroup bgeconv
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
// This warning tells us about truncation of __long__ stl-generated names.
// It can occasionally cause DevStudio to have internal compiler warnings.
diff --git a/source/gameengine/Converter/BL_MeshDeformer.h b/source/gameengine/Converter/BL_MeshDeformer.h
index 48878d3f084..b62958c7fd1 100644
--- a/source/gameengine/Converter/BL_MeshDeformer.h
+++ b/source/gameengine/Converter/BL_MeshDeformer.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file BL_MeshDeformer.h
+ * \ingroup bgeconv
+ */
+
#ifndef BL_MESHDEFORMER
#define BL_MESHDEFORMER
diff --git a/source/gameengine/Converter/BL_ModifierDeformer.cpp b/source/gameengine/Converter/BL_ModifierDeformer.cpp
index 205892f5c77..95f362a2879 100644
--- a/source/gameengine/Converter/BL_ModifierDeformer.cpp
+++ b/source/gameengine/Converter/BL_ModifierDeformer.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/BL_ModifierDeformer.cpp
+ * \ingroup bgeconv
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif //WIN32
diff --git a/source/gameengine/Converter/BL_ModifierDeformer.h b/source/gameengine/Converter/BL_ModifierDeformer.h
index caf1741ecaf..e9e546ebc86 100644
--- a/source/gameengine/Converter/BL_ModifierDeformer.h
+++ b/source/gameengine/Converter/BL_ModifierDeformer.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file BL_ModifierDeformer.h
+ * \ingroup bgeconv
+ */
+
#ifndef BL_MODIFIERDEFORMER
#define BL_MODIFIERDEFORMER
diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp
index d4ced2634ea..bb53c2d6fe6 100644
--- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp
+++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/BL_ShapeActionActuator.cpp
+ * \ingroup bgeconv
+ */
+
+
#if defined (__sgi)
#include <math.h>
#else
diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.h b/source/gameengine/Converter/BL_ShapeActionActuator.h
index 64b75967874..229c59a34a4 100644
--- a/source/gameengine/Converter/BL_ShapeActionActuator.h
+++ b/source/gameengine/Converter/BL_ShapeActionActuator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file BL_ShapeActionActuator.h
+ * \ingroup bgeconv
+ */
+
#ifndef BL_SHAPEACTIONACTUATOR
#define BL_SHAPEACTIONACTUATOR
diff --git a/source/gameengine/Converter/BL_ShapeDeformer.cpp b/source/gameengine/Converter/BL_ShapeDeformer.cpp
index a5fd797852f..40e7c6e1bde 100644
--- a/source/gameengine/Converter/BL_ShapeDeformer.cpp
+++ b/source/gameengine/Converter/BL_ShapeDeformer.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/BL_ShapeDeformer.cpp
+ * \ingroup bgeconv
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif //WIN32
diff --git a/source/gameengine/Converter/BL_ShapeDeformer.h b/source/gameengine/Converter/BL_ShapeDeformer.h
index b3b0996c27b..8115af59d27 100644
--- a/source/gameengine/Converter/BL_ShapeDeformer.h
+++ b/source/gameengine/Converter/BL_ShapeDeformer.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file BL_ShapeDeformer.h
+ * \ingroup bgeconv
+ */
+
#ifndef BL_SHAPEDEFORMER
#define BL_SHAPEDEFORMER
diff --git a/source/gameengine/Converter/BL_SkinDeformer.cpp b/source/gameengine/Converter/BL_SkinDeformer.cpp
index 3bac525d765..4916ce53fc5 100644
--- a/source/gameengine/Converter/BL_SkinDeformer.cpp
+++ b/source/gameengine/Converter/BL_SkinDeformer.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/BL_SkinDeformer.cpp
+ * \ingroup bgeconv
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif //WIN32
diff --git a/source/gameengine/Converter/BL_SkinDeformer.h b/source/gameengine/Converter/BL_SkinDeformer.h
index f8483519eb2..69b8783ce22 100644
--- a/source/gameengine/Converter/BL_SkinDeformer.h
+++ b/source/gameengine/Converter/BL_SkinDeformer.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file BL_SkinDeformer.h
+ * \ingroup bgeconv
+ */
+
#ifndef BL_SKINDEFORMER
#define BL_SKINDEFORMER
diff --git a/source/gameengine/Converter/BlenderWorldInfo.cpp b/source/gameengine/Converter/BlenderWorldInfo.cpp
index 60cb4a751bb..8fc01032de7 100644
--- a/source/gameengine/Converter/BlenderWorldInfo.cpp
+++ b/source/gameengine/Converter/BlenderWorldInfo.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/BlenderWorldInfo.cpp
+ * \ingroup bgeconv
+ */
+
+
#include <stdio.h> // printf()
#include "BlenderWorldInfo.h"
diff --git a/source/gameengine/Converter/BlenderWorldInfo.h b/source/gameengine/Converter/BlenderWorldInfo.h
index 29145344d18..e7b8784a076 100644
--- a/source/gameengine/Converter/BlenderWorldInfo.h
+++ b/source/gameengine/Converter/BlenderWorldInfo.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file BlenderWorldInfo.h
+ * \ingroup bgeconv
+ */
+
#ifndef __BLENDERWORLDINFO_H
#define __BLENDERWORLDINFO_H
#include "MT_CmMatrix4x4.h"
diff --git a/source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp b/source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp
index e325439b087..a9a3e66f996 100644
--- a/source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp
+++ b/source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/KX_BlenderScalarInterpolator.cpp
+ * \ingroup bgeconv
+ */
+
+
#include "KX_BlenderScalarInterpolator.h"
#include <cstring>
diff --git a/source/gameengine/Converter/KX_BlenderScalarInterpolator.h b/source/gameengine/Converter/KX_BlenderScalarInterpolator.h
index 7b49cbcf668..bd786bae969 100644
--- a/source/gameengine/Converter/KX_BlenderScalarInterpolator.h
+++ b/source/gameengine/Converter/KX_BlenderScalarInterpolator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_BlenderScalarInterpolator.h
+ * \ingroup bgeconv
+ */
+
#ifndef __KX_SCALARINTERPOLATOR_H
#define __KX_SCALARINTERPOLATOR_H
diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
index 723b849f4c7..a98fe87a0ef 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/KX_BlenderSceneConverter.cpp
+ * \ingroup bgeconv
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable:4786) // suppress stl-MSVC debug info warning
#endif
diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.h b/source/gameengine/Converter/KX_BlenderSceneConverter.h
index 8692a75ecb6..f99ed3aa412 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.h
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_BlenderSceneConverter.h
+ * \ingroup bgeconv
+ */
+
#ifndef __KX_BLENDERSCENECONVERTER_H
#define __KX_BLENDERSCENECONVERTER_H
diff --git a/source/gameengine/Converter/KX_ConvertActuators.cpp b/source/gameengine/Converter/KX_ConvertActuators.cpp
index 2bd992037c5..b9e41d553b3 100644
--- a/source/gameengine/Converter/KX_ConvertActuators.cpp
+++ b/source/gameengine/Converter/KX_ConvertActuators.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Convert Blender actuators for use in the GameEngine
*/
+/** \file gameengine/Converter/KX_ConvertActuators.cpp
+ * \ingroup bgeconv
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif //WIN32
diff --git a/source/gameengine/Converter/KX_ConvertActuators.h b/source/gameengine/Converter/KX_ConvertActuators.h
index 82624f94b49..90bb3f3fabd 100644
--- a/source/gameengine/Converter/KX_ConvertActuators.h
+++ b/source/gameengine/Converter/KX_ConvertActuators.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_ConvertActuators.h
+ * \ingroup bgeconv
+ */
+
#ifndef __KX_CONVERTACTUATORS_H
#define __KX_CONVERTACTUATORS_H
diff --git a/source/gameengine/Converter/KX_ConvertControllers.cpp b/source/gameengine/Converter/KX_ConvertControllers.cpp
index 7f329ca0684..98afc3a690a 100644
--- a/source/gameengine/Converter/KX_ConvertControllers.cpp
+++ b/source/gameengine/Converter/KX_ConvertControllers.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/KX_ConvertControllers.cpp
+ * \ingroup bgeconv
+ */
+
+
#include "MEM_guardedalloc.h"
#include "KX_BlenderSceneConverter.h"
diff --git a/source/gameengine/Converter/KX_ConvertControllers.h b/source/gameengine/Converter/KX_ConvertControllers.h
index c251985abfb..c06c3825fd5 100644
--- a/source/gameengine/Converter/KX_ConvertControllers.h
+++ b/source/gameengine/Converter/KX_ConvertControllers.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_ConvertControllers.h
+ * \ingroup bgeconv
+ */
+
#ifndef __KX_CONVERTCONTROLLERS_H
#define __KX_CONVERTCONTROLLERS_H
diff --git a/source/gameengine/Converter/KX_ConvertProperties.cpp b/source/gameengine/Converter/KX_ConvertProperties.cpp
index 6c850008e5e..33fd1e361d2 100644
--- a/source/gameengine/Converter/KX_ConvertProperties.cpp
+++ b/source/gameengine/Converter/KX_ConvertProperties.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/KX_ConvertProperties.cpp
+ * \ingroup bgeconv
+ */
+
+
#include "KX_ConvertProperties.h"
diff --git a/source/gameengine/Converter/KX_ConvertProperties.h b/source/gameengine/Converter/KX_ConvertProperties.h
index 0fac2be0fe5..19c56fdc1d9 100644
--- a/source/gameengine/Converter/KX_ConvertProperties.h
+++ b/source/gameengine/Converter/KX_ConvertProperties.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_ConvertProperties.h
+ * \ingroup bgeconv
+ */
+
#ifndef __KX_CONVERTPROPERTIES
#define __KX_CONVERTPROPERTIES
diff --git a/source/gameengine/Converter/KX_ConvertSensors.cpp b/source/gameengine/Converter/KX_ConvertSensors.cpp
index 20597d46e82..d0984c161ab 100644
--- a/source/gameengine/Converter/KX_ConvertSensors.cpp
+++ b/source/gameengine/Converter/KX_ConvertSensors.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Conversion of Blender data blocks to KX sensor system
*/
+/** \file gameengine/Converter/KX_ConvertSensors.cpp
+ * \ingroup bgeconv
+ */
+
+
#include <stdio.h>
#if defined(WIN32) && !defined(FREE_WINDOWS)
diff --git a/source/gameengine/Converter/KX_ConvertSensors.h b/source/gameengine/Converter/KX_ConvertSensors.h
index db3c6146f18..75a58deedc8 100644
--- a/source/gameengine/Converter/KX_ConvertSensors.h
+++ b/source/gameengine/Converter/KX_ConvertSensors.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_ConvertSensors.h
+ * \ingroup bgeconv
+ */
+
#ifndef __KX_CONVERTSENSOR_H
#define __KX_CONVERTSENSOR_H
diff --git a/source/gameengine/Converter/KX_IpoConvert.cpp b/source/gameengine/Converter/KX_IpoConvert.cpp
index 774efb3879d..2ad56717e26 100644
--- a/source/gameengine/Converter/KX_IpoConvert.cpp
+++ b/source/gameengine/Converter/KX_IpoConvert.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/KX_IpoConvert.cpp
+ * \ingroup bgeconv
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
// don't show stl-warnings
#pragma warning (disable:4786)
diff --git a/source/gameengine/Converter/KX_IpoConvert.h b/source/gameengine/Converter/KX_IpoConvert.h
index 6178f00efb5..d77a72a82e2 100644
--- a/source/gameengine/Converter/KX_IpoConvert.h
+++ b/source/gameengine/Converter/KX_IpoConvert.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_IpoConvert.h
+ * \ingroup bgeconv
+ */
+
#ifndef __KX_IPOCONVERT_H
#define __KX_IPOCONVERT_H
diff --git a/source/gameengine/Converter/KX_SoftBodyDeformer.cpp b/source/gameengine/Converter/KX_SoftBodyDeformer.cpp
index bace00a872d..d3d17bbe433 100644
--- a/source/gameengine/Converter/KX_SoftBodyDeformer.cpp
+++ b/source/gameengine/Converter/KX_SoftBodyDeformer.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Converter/KX_SoftBodyDeformer.cpp
+ * \ingroup bgeconv
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif //WIN32
diff --git a/source/gameengine/Converter/KX_SoftBodyDeformer.h b/source/gameengine/Converter/KX_SoftBodyDeformer.h
index 76874bdc782..aa4ff9d5e54 100644
--- a/source/gameengine/Converter/KX_SoftBodyDeformer.h
+++ b/source/gameengine/Converter/KX_SoftBodyDeformer.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_SoftBodyDeformer.h
+ * \ingroup bgeconv
+ */
+
#ifndef KX_SOFTBODYDEFORMER
#define KX_SOFTBODYDEFORMER
diff --git a/source/gameengine/Expressions/BoolValue.cpp b/source/gameengine/Expressions/BoolValue.cpp
index 5510554bd22..113d12b7d59 100644
--- a/source/gameengine/Expressions/BoolValue.cpp
+++ b/source/gameengine/Expressions/BoolValue.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/BoolValue.cpp
+ * \ingroup expressions
+ */
// BoolValue.cpp: implementation of the CBoolValue class.
/*
diff --git a/source/gameengine/Expressions/BoolValue.h b/source/gameengine/Expressions/BoolValue.h
index 8110b9719bf..a88bcf98e77 100644
--- a/source/gameengine/Expressions/BoolValue.h
+++ b/source/gameengine/Expressions/BoolValue.h
@@ -12,6 +12,11 @@
* purpose. It is provided "as is" without express or implied warranty.
*
*/
+
+/** \file BoolValue.h
+ * \ingroup expressions
+ */
+
#if !defined _BOOLVALUE_H
#define _BOOLVALUE_H
diff --git a/source/gameengine/Expressions/ConstExpr.cpp b/source/gameengine/Expressions/ConstExpr.cpp
index e873e968c86..8d5a47b2d0d 100644
--- a/source/gameengine/Expressions/ConstExpr.cpp
+++ b/source/gameengine/Expressions/ConstExpr.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/ConstExpr.cpp
+ * \ingroup expressions
+ */
// ConstExpr.cpp: implementation of the CConstExpr class.
/*
diff --git a/source/gameengine/Expressions/ConstExpr.h b/source/gameengine/Expressions/ConstExpr.h
index aef2ddc2467..07278eb03f6 100644
--- a/source/gameengine/Expressions/ConstExpr.h
+++ b/source/gameengine/Expressions/ConstExpr.h
@@ -13,6 +13,10 @@
*
*/
+/** \file ConstExpr.h
+ * \ingroup expressions
+ */
+
#ifndef __CONSTEXPR_H__
#define __CONSTEXPR_H__
diff --git a/source/gameengine/Expressions/EXP_C-Api.cpp b/source/gameengine/Expressions/EXP_C-Api.cpp
index d97e13b7784..a5d0ce5e8f8 100644
--- a/source/gameengine/Expressions/EXP_C-Api.cpp
+++ b/source/gameengine/Expressions/EXP_C-Api.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Expressions/EXP_C-Api.cpp
+ * \ingroup expressions
+ */
+
#include "EXP_C-Api.h"
#include "IntValue.h"
#include "BoolValue.h"
diff --git a/source/gameengine/Expressions/EXP_C-Api.h b/source/gameengine/Expressions/EXP_C-Api.h
index 12fdc4945e7..89156033be5 100644
--- a/source/gameengine/Expressions/EXP_C-Api.h
+++ b/source/gameengine/Expressions/EXP_C-Api.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file EXP_C-Api.h
+ * \ingroup expressions
+ */
+
#ifndef __EXPRESSION_INCLUDE
#define __EXPRESSION_INCLUDE
diff --git a/source/gameengine/Expressions/EmptyValue.cpp b/source/gameengine/Expressions/EmptyValue.cpp
index 22215ba5ed1..2bb8f69ac51 100644
--- a/source/gameengine/Expressions/EmptyValue.cpp
+++ b/source/gameengine/Expressions/EmptyValue.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/EmptyValue.cpp
+ * \ingroup expressions
+ */
// EmptyValue.cpp: implementation of the CEmptyValue class.
/*
diff --git a/source/gameengine/Expressions/EmptyValue.h b/source/gameengine/Expressions/EmptyValue.h
index f00bc6cfcd7..1b1c1159169 100644
--- a/source/gameengine/Expressions/EmptyValue.h
+++ b/source/gameengine/Expressions/EmptyValue.h
@@ -12,6 +12,11 @@
* purpose. It is provided "as is" without express or implied warranty.
*
*/
+
+/** \file EmptyValue.h
+ * \ingroup expressions
+ */
+
#if !defined _EMPTYVALUE_H
#define _EMPTYVALUE_H
diff --git a/source/gameengine/Expressions/ErrorValue.cpp b/source/gameengine/Expressions/ErrorValue.cpp
index 3063d02d69d..db5be0d2ee1 100644
--- a/source/gameengine/Expressions/ErrorValue.cpp
+++ b/source/gameengine/Expressions/ErrorValue.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/ErrorValue.cpp
+ * \ingroup expressions
+ */
// ErrorValue.cpp: implementation of the CErrorValue class.
/*
* Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
diff --git a/source/gameengine/Expressions/ErrorValue.h b/source/gameengine/Expressions/ErrorValue.h
index 6bd131b762d..7f18e751af9 100644
--- a/source/gameengine/Expressions/ErrorValue.h
+++ b/source/gameengine/Expressions/ErrorValue.h
@@ -13,6 +13,10 @@
*
*/
+/** \file ErrorValue.h
+ * \ingroup expressions
+ */
+
#if !defined _ERRORVALUE_H
#define _ERRORVALUE_H
diff --git a/source/gameengine/Expressions/Expression.cpp b/source/gameengine/Expressions/Expression.cpp
index 7ef0d4cc84c..9ed0ae9ab0d 100644
--- a/source/gameengine/Expressions/Expression.cpp
+++ b/source/gameengine/Expressions/Expression.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/Expression.cpp
+ * \ingroup expressions
+ */
// Expression.cpp: implementation of the CExpression class.
/*
* Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
diff --git a/source/gameengine/Expressions/Expression.h b/source/gameengine/Expressions/Expression.h
index de0c0821727..c285fa118c1 100644
--- a/source/gameengine/Expressions/Expression.h
+++ b/source/gameengine/Expressions/Expression.h
@@ -13,6 +13,10 @@
*
*/
+/** \file Expression.h
+ * \ingroup expressions
+ */
+
#if !defined _EXPRESSION_H
#define _EXPRESSION_H
diff --git a/source/gameengine/Expressions/FloatValue.cpp b/source/gameengine/Expressions/FloatValue.cpp
index e00121354f8..403338573e2 100644
--- a/source/gameengine/Expressions/FloatValue.cpp
+++ b/source/gameengine/Expressions/FloatValue.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/FloatValue.cpp
+ * \ingroup expressions
+ */
// FloatValue.cpp: implementation of the CFloatValue class.
/*
* Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
diff --git a/source/gameengine/Expressions/FloatValue.h b/source/gameengine/Expressions/FloatValue.h
index 83b9ff1db5e..535939e1758 100644
--- a/source/gameengine/Expressions/FloatValue.h
+++ b/source/gameengine/Expressions/FloatValue.h
@@ -12,6 +12,11 @@
* purpose. It is provided "as is" without express or implied warranty.
*
*/
+
+/** \file FloatValue.h
+ * \ingroup expressions
+ */
+
#if !defined _FLOATVALUE_H
#define _FLOATVALUE_H
diff --git a/source/gameengine/Expressions/IdentifierExpr.cpp b/source/gameengine/Expressions/IdentifierExpr.cpp
index 3cbd5b748d1..e469709c9b2 100644
--- a/source/gameengine/Expressions/IdentifierExpr.cpp
+++ b/source/gameengine/Expressions/IdentifierExpr.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Expressions/IdentifierExpr.cpp
+ * \ingroup expressions
+ */
+
+
#include "IdentifierExpr.h"
CIdentifierExpr::CIdentifierExpr(const STR_String& identifier,CValue* id_context)
diff --git a/source/gameengine/Expressions/IdentifierExpr.h b/source/gameengine/Expressions/IdentifierExpr.h
index 0e67b17a9c2..676b1b11607 100644
--- a/source/gameengine/Expressions/IdentifierExpr.h
+++ b/source/gameengine/Expressions/IdentifierExpr.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file IdentifierExpr.h
+ * \ingroup expressions
+ */
+
#ifndef __IDENTIFIER_EXPR
#define __IDENTIFIER_EXPR
diff --git a/source/gameengine/Expressions/IfExpr.cpp b/source/gameengine/Expressions/IfExpr.cpp
index 0aa9cfbd3c6..9e6d80ab468 100644
--- a/source/gameengine/Expressions/IfExpr.cpp
+++ b/source/gameengine/Expressions/IfExpr.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/IfExpr.cpp
+ * \ingroup expressions
+ */
// IfExpr.cpp: implementation of the CIfExpr class.
/*
* Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
diff --git a/source/gameengine/Expressions/IfExpr.h b/source/gameengine/Expressions/IfExpr.h
index b2a953bd36d..5ac8d835afd 100644
--- a/source/gameengine/Expressions/IfExpr.h
+++ b/source/gameengine/Expressions/IfExpr.h
@@ -12,6 +12,11 @@
* purpose. It is provided "as is" without express or implied warranty.
*
*/
+
+/** \file IfExpr.h
+ * \ingroup expressions
+ */
+
#if !defined(AFX_IFEXPR_H__1F691841_C5C7_11D1_A863_0000B4542BD8__INCLUDED_)
#define AFX_IFEXPR_H__1F691841_C5C7_11D1_A863_0000B4542BD8__INCLUDED_
diff --git a/source/gameengine/Expressions/InputParser.cpp b/source/gameengine/Expressions/InputParser.cpp
index 1d3a50601a5..7957c82e7f9 100644
--- a/source/gameengine/Expressions/InputParser.cpp
+++ b/source/gameengine/Expressions/InputParser.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/InputParser.cpp
+ * \ingroup expressions
+ */
// Parser.cpp: implementation of the CParser class.
/*
* Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
diff --git a/source/gameengine/Expressions/InputParser.h b/source/gameengine/Expressions/InputParser.h
index 4c47677034b..d5a9295ab8b 100644
--- a/source/gameengine/Expressions/InputParser.h
+++ b/source/gameengine/Expressions/InputParser.h
@@ -14,6 +14,11 @@
* purpose. It is provided "as is" without express or implied warranty.
*
*/
+
+/** \file InputParser.h
+ * \ingroup expressions
+ */
+
#ifndef __INPUTPARSER_H__
#define __INPUTPARSER_H__
diff --git a/source/gameengine/Expressions/IntValue.cpp b/source/gameengine/Expressions/IntValue.cpp
index 5ba57e756c0..cf0aed181bb 100644
--- a/source/gameengine/Expressions/IntValue.cpp
+++ b/source/gameengine/Expressions/IntValue.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/IntValue.cpp
+ * \ingroup expressions
+ */
// IntValue.cpp: implementation of the CIntValue class.
/*
* Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
diff --git a/source/gameengine/Expressions/IntValue.h b/source/gameengine/Expressions/IntValue.h
index e484c436177..5460f744de3 100644
--- a/source/gameengine/Expressions/IntValue.h
+++ b/source/gameengine/Expressions/IntValue.h
@@ -12,6 +12,11 @@
* purpose. It is provided "as is" without express or implied warranty.
*
*/
+
+/** \file IntValue.h
+ * \ingroup expressions
+ */
+
#if !defined _INTVALUE_H
#define _INTVALUE_H
diff --git a/source/gameengine/Expressions/KX_HashedPtr.cpp b/source/gameengine/Expressions/KX_HashedPtr.cpp
index 1743e55c2bf..f3233732ee3 100644
--- a/source/gameengine/Expressions/KX_HashedPtr.cpp
+++ b/source/gameengine/Expressions/KX_HashedPtr.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Expressions/KX_HashedPtr.cpp
+ * \ingroup expressions
+ */
+
+
#include "KX_HashedPtr.h"
unsigned int KX_Hash(void * inDWord)
diff --git a/source/gameengine/Expressions/KX_HashedPtr.h b/source/gameengine/Expressions/KX_HashedPtr.h
index 09332377918..77e581360e7 100644
--- a/source/gameengine/Expressions/KX_HashedPtr.h
+++ b/source/gameengine/Expressions/KX_HashedPtr.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_HashedPtr.h
+ * \ingroup expressions
+ */
+
#ifndef __KX_HASHEDPTR
#define __KX_HASHEDPTR
diff --git a/source/gameengine/Expressions/KX_Python.h b/source/gameengine/Expressions/KX_Python.h
index 234b70770f6..9d295e1910e 100644
--- a/source/gameengine/Expressions/KX_Python.h
+++ b/source/gameengine/Expressions/KX_Python.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_Python.h
+ * \ingroup expressions
+ */
+
#ifndef KX_PYTHON_H
#define KX_PYTHON_H
diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp
index 258aada6565..271d5067dd9 100644
--- a/source/gameengine/Expressions/ListValue.cpp
+++ b/source/gameengine/Expressions/ListValue.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/ListValue.cpp
+ * \ingroup expressions
+ */
// ListValue.cpp: implementation of the CListValue class.
//
//////////////////////////////////////////////////////////////////////
diff --git a/source/gameengine/Expressions/ListValue.h b/source/gameengine/Expressions/ListValue.h
index ff675dd0e68..c1530d86d8c 100644
--- a/source/gameengine/Expressions/ListValue.h
+++ b/source/gameengine/Expressions/ListValue.h
@@ -13,6 +13,10 @@
*
*/
+/** \file ListValue.h
+ * \ingroup expressions
+ */
+
#if !defined _LISTVALUE_H
#define _LISTVALUE_H
diff --git a/source/gameengine/Expressions/Operator1Expr.cpp b/source/gameengine/Expressions/Operator1Expr.cpp
index ca852020e5a..0ef35108233 100644
--- a/source/gameengine/Expressions/Operator1Expr.cpp
+++ b/source/gameengine/Expressions/Operator1Expr.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/Operator1Expr.cpp
+ * \ingroup expressions
+ */
// Operator1Expr.cpp: implementation of the COperator1Expr class.
/*
* Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
diff --git a/source/gameengine/Expressions/Operator1Expr.h b/source/gameengine/Expressions/Operator1Expr.h
index 62f178fb9f7..c6fce709248 100644
--- a/source/gameengine/Expressions/Operator1Expr.h
+++ b/source/gameengine/Expressions/Operator1Expr.h
@@ -13,6 +13,10 @@
*
*/
+/** \file Operator1Expr.h
+ * \ingroup expressions
+ */
+
#if !defined(AFX_OPERATOR1EXPR_H__A1653901_BF41_11D1_A51C_00A02472FC58__INCLUDED_)
#define AFX_OPERATOR1EXPR_H__A1653901_BF41_11D1_A51C_00A02472FC58__INCLUDED_
diff --git a/source/gameengine/Expressions/Operator2Expr.cpp b/source/gameengine/Expressions/Operator2Expr.cpp
index 9428559c607..7a012c4165c 100644
--- a/source/gameengine/Expressions/Operator2Expr.cpp
+++ b/source/gameengine/Expressions/Operator2Expr.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/Operator2Expr.cpp
+ * \ingroup expressions
+ */
// Operator2Expr.cpp: implementation of the COperator2Expr class.
/*
* Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
diff --git a/source/gameengine/Expressions/Operator2Expr.h b/source/gameengine/Expressions/Operator2Expr.h
index 73ea177f0d0..3b4d604c254 100644
--- a/source/gameengine/Expressions/Operator2Expr.h
+++ b/source/gameengine/Expressions/Operator2Expr.h
@@ -13,6 +13,10 @@
*
*/
+/** \file Operator2Expr.h
+ * \ingroup expressions
+ */
+
#if !defined _OPERATOR2EXPR_H
#define _OPERATOR2EXPR_H
diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp
index 9195bd64f3f..e205ddfda2e 100644
--- a/source/gameengine/Expressions/PyObjectPlus.cpp
+++ b/source/gameengine/Expressions/PyObjectPlus.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Expressions/PyObjectPlus.cpp
+ * \ingroup expressions
+ */
+
+
/*------------------------------
* PyObjectPlus cpp
*
@@ -103,19 +108,26 @@ void PyObjectPlus::InvalidateProxy() // check typename of each parent
PyTypeObject PyObjectPlus::Type = {
PyVarObject_HEAD_INIT(NULL, 0)
- "PyObjectPlus", /*tp_name*/
+ "PyObjectPlus", /*tp_name*/
sizeof(PyObjectPlus_Proxy), /*tp_basicsize*/
- 0, /*tp_itemsize*/
+ 0, /*tp_itemsize*/
/* methods */
- py_base_dealloc,
- 0,
- 0,
- 0,
+ py_base_dealloc, /* tp_dealloc */
+ 0, /* printfunc tp_print; */
+ 0, /* getattrfunc tp_getattr; */
+ 0, /* setattrfunc tp_setattr; */
+ 0, /* tp_compare */ /* DEPRECATED in python 3.0! */
+ py_base_repr, /* tp_repr */
+ 0,0,0,0,0,0,0,0,0, /* Method suites for standard classes */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,/* long tp_flags; */
+ 0,0,0,0,
+ /* weak reference enabler */
+#ifdef USE_WEAKREFS
+ offsetof(PyObjectPlus_Proxy, in_weakreflist), /* long tp_weaklistoffset; */
+#else
0,
- py_base_repr,
- 0,0,0,0,0,0,0,0,0,
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
- 0,0,0,0,0,0,0,
+#endif
+ 0,0,
Methods,
0,
0,
@@ -204,8 +216,16 @@ PyObject * PyObjectPlus::py_base_new(PyTypeObject *type, PyObject *args, PyObjec
return (PyObject *)ret;
}
+/**
+ * @param self A PyObjectPlus_Proxy
+ */
void PyObjectPlus::py_base_dealloc(PyObject *self) // python wrapper
{
+#ifdef USE_WEAKREFS
+ if (BGE_PROXY_WKREF(self) != NULL)
+ PyObject_ClearWeakRefs((PyObject *) self);
+#endif
+
if (BGE_PROXY_PYREF(self)) {
PyObjectPlus *self_plus= BGE_PROXY_REF(self);
if(self_plus) {
@@ -1102,6 +1122,9 @@ PyObject *PyObjectPlus::GetProxyPlus_Ext(PyObjectPlus *self, PyTypeObject *tp, v
self->m_proxy = reinterpret_cast<PyObject *>PyObject_NEW( PyObjectPlus_Proxy, tp);
BGE_PROXY_PYOWNS(self->m_proxy) = false;
BGE_PROXY_PYREF(self->m_proxy) = true;
+#ifdef USE_WEAKREFS
+ BGE_PROXY_WKREF(self->m_proxy) = NULL;
+#endif
}
//PyObject_Print(self->m_proxy, stdout, 0);
//printf("ref %d\n", self->m_proxy->ob_refcnt);
@@ -1122,6 +1145,9 @@ PyObject *PyObjectPlus::NewProxyPlus_Ext(PyObjectPlus *self, PyTypeObject *tp, v
BGE_PROXY_PYOWNS(proxy) = py_owns;
BGE_PROXY_REF(proxy) = NULL;
BGE_PROXY_PTR(proxy) = ptr;
+#ifdef USE_WEAKREFS
+ BGE_PROXY_WKREF(self->m_proxy) = NULL;
+#endif
return proxy;
}
if (self->m_proxy)
diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h
index 4890a5edb04..7d06cc64ee9 100644
--- a/source/gameengine/Expressions/PyObjectPlus.h
+++ b/source/gameengine/Expressions/PyObjectPlus.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,13 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file PyObjectPlus.h
+ * \ingroup expressions
+ */
+
+/* for now keep weakrefs optional */
+#define USE_WEAKREFS
+
#ifndef _adr_py_lib_h_ // only process once,
#define _adr_py_lib_h_ // even if multiply included
@@ -91,6 +98,9 @@ typedef struct PyObjectPlus_Proxy {
void *ptr; // optional pointer to generic structure, the structure holds no reference to this proxy
bool py_owns; // true if the object pointed by ref should be deleted when the proxy is deleted
bool py_ref; // true if proxy is connected to a GE object (ref is used)
+#ifdef USE_WEAKREFS
+ PyObject *in_weakreflist; // weak reference enabler
+#endif
} PyObjectPlus_Proxy;
#define BGE_PROXY_ERROR_MSG "Blender Game Engine data has been freed, cannot use this python variable"
@@ -98,6 +108,9 @@ typedef struct PyObjectPlus_Proxy {
#define BGE_PROXY_PTR(_self) (((PyObjectPlus_Proxy *)_self)->ptr)
#define BGE_PROXY_PYOWNS(_self) (((PyObjectPlus_Proxy *)_self)->py_owns)
#define BGE_PROXY_PYREF(_self) (((PyObjectPlus_Proxy *)_self)->py_ref)
+#ifdef USE_WEAKREFS
+ #define BGE_PROXY_WKREF(_self) (((PyObjectPlus_Proxy *)_self)->in_weakreflist)
+#endif
/* Note, sometimes we dont care what BGE type this is as long as its a proxy */
#define BGE_PROXY_CHECK_TYPE(_type) ((_type)->tp_dealloc == PyObjectPlus::py_base_dealloc)
diff --git a/source/gameengine/Expressions/StringValue.cpp b/source/gameengine/Expressions/StringValue.cpp
index d0aa8d26678..29c72a29b71 100644
--- a/source/gameengine/Expressions/StringValue.cpp
+++ b/source/gameengine/Expressions/StringValue.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/StringValue.cpp
+ * \ingroup expressions
+ */
// StringValue.cpp: implementation of the CStringValue class.
/*
* Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
diff --git a/source/gameengine/Expressions/StringValue.h b/source/gameengine/Expressions/StringValue.h
index ef8228141a2..6afe7fa5935 100644
--- a/source/gameengine/Expressions/StringValue.h
+++ b/source/gameengine/Expressions/StringValue.h
@@ -13,6 +13,10 @@
*
*/
+/** \file StringValue.h
+ * \ingroup expressions
+ */
+
#ifndef __STRINGVALUE_H__
#define __STRINGVALUE_H__
diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp
index 262f543f834..e60b380e95c 100644
--- a/source/gameengine/Expressions/Value.cpp
+++ b/source/gameengine/Expressions/Value.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/Value.cpp
+ * \ingroup expressions
+ */
// Value.cpp: implementation of the CValue class.
// developed at Eindhoven University of Technology, 1997
// by the OOPS team
diff --git a/source/gameengine/Expressions/Value.h b/source/gameengine/Expressions/Value.h
index b4bb34b0331..ef7edd397b7 100644
--- a/source/gameengine/Expressions/Value.h
+++ b/source/gameengine/Expressions/Value.h
@@ -13,29 +13,14 @@
*
*/
+/** \file Value.h
+ * \ingroup expressions
+ */
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable:4786)
#endif //WIN32
-/////////////////////////////////////////////////////////////////////////////////////
-//// Baseclass CValue
-//// Together with CExpression, CValue and it's derived classes can be used to
-//// parse expressions into a parsetree with error detecting/correcting capabilities
-//// also expandible by a CFactory pluginsystem
-////
-//// Features:
-//// Reference Counting (AddRef() / Release())
-//// Calculations (Calc() / CalcFinal())
-//// Configuration (Configure())
-//// Serialization (EdSerialize() / EdIdSerialize() / EdPtrSerialize() and macro PLUGIN_DECLARE_SERIAL
-//// Property system (SetProperty() / GetProperty() / FindIdentifier())
-//// Replication (GetReplica())
-//// Flags (IsSelected() / IsModified() / SetSelected()...)
-////
-//// Some small editor-specific things added
-//// A helperclass CompressorArchive handles the serialization
-////
-/////////////////////////////////////////////////////////////////////////////////////
#ifndef __VALUE_H__
#define __VALUE_H__
@@ -184,21 +169,35 @@ public:
#endif
};
-//
-// CValue
-//
-// Base class for all editor functionality, flexible object type that allows
-// calculations and uses reference counting for memory management.
-//
-//
-
-
-
#include "PyObjectPlus.h"
#ifdef WITH_PYTHON
#include "object.h"
#endif
+
+/**
+ * Baseclass CValue
+ *
+ * Together with CExpression, CValue and it's derived classes can be used to
+ * parse expressions into a parsetree with error detecting/correcting capabilities
+ * also expandible by a CFactory pluginsystem
+ *
+ * Base class for all editor functionality, flexible object type that allows
+ * calculations and uses reference counting for memory management.
+ *
+ * Features:
+ * - Reference Counting (AddRef() / Release())
+ * - Calculations (Calc() / CalcFinal())
+ * - Configuration (Configure())
+ * - Serialization (EdSerialize() / EdIdSerialize() / EdPtrSerialize() and macro PLUGIN_DECLARE_SERIAL
+ * - Property system (SetProperty() / GetProperty() / FindIdentifier())
+ * - Replication (GetReplica())
+ * - Flags (IsSelected() / IsModified() / SetSelected()...)
+ *
+ * - Some small editor-specific things added
+ * - A helperclass CompressorArchive handles the serialization
+ *
+ */
class CValue : public PyObjectPlus
{
diff --git a/source/gameengine/Expressions/VectorValue.cpp b/source/gameengine/Expressions/VectorValue.cpp
index c7b0db4a8f9..96cc5b48338 100644
--- a/source/gameengine/Expressions/VectorValue.cpp
+++ b/source/gameengine/Expressions/VectorValue.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Expressions/VectorValue.cpp
+ * \ingroup expressions
+ */
// VectorValue.cpp: implementation of the CVectorValue class.
/*
* Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org>
diff --git a/source/gameengine/Expressions/VectorValue.h b/source/gameengine/Expressions/VectorValue.h
index cc4deda2041..94d1ae65ada 100644
--- a/source/gameengine/Expressions/VectorValue.h
+++ b/source/gameengine/Expressions/VectorValue.h
@@ -12,6 +12,11 @@
* purpose. It is provided "as is" without express or implied warranty.
*
*/
+
+/** \file VectorValue.h
+ * \ingroup expressions
+ */
+
#if !defined _VECTORVALUE_H
#define _VECTORVALUE_H
diff --git a/source/gameengine/Expressions/VoidValue.h b/source/gameengine/Expressions/VoidValue.h
index f30f8c1be7c..2e5c056d793 100644
--- a/source/gameengine/Expressions/VoidValue.h
+++ b/source/gameengine/Expressions/VoidValue.h
@@ -1,4 +1,4 @@
-/**
+/*
* VoidValue.h: interface for the CVoidValue class.
* $Id$
*
@@ -27,6 +27,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file VoidValue.h
+ * \ingroup expressions
+ */
+
#ifndef __VOIDVALUE_H__
#define __VOIDVALUE_H__
diff --git a/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp b/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
index c58c28f7dc9..a73a6d4631b 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
+++ b/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -24,6 +24,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/GameLogic/Joystick/SCA_Joystick.cpp
+ * \ingroup gamelogic
+ */
+
#ifndef DISABLE_SDL
#include <SDL.h>
#endif
diff --git a/source/gameengine/GameLogic/Joystick/SCA_Joystick.h b/source/gameengine/GameLogic/Joystick/SCA_Joystick.h
index b6e54dc2fcd..f371955ffc6 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_Joystick.h
+++ b/source/gameengine/GameLogic/Joystick/SCA_Joystick.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_Joystick.h
+ * \ingroup gamelogic
+ */
+
#ifndef _SCA_JOYSTICK_H_
#define _SCA_JOYSTICK_H_
@@ -33,7 +37,7 @@
#include "SDL.h"
#endif
-/*
+/**
* Basic Joystick class
* I will make this class a singleton because there should be only one joystick
* even if there are more than one scene using it and count how many scene are using it.
@@ -53,22 +57,22 @@ class SCA_Joystick
#endif
int m_joyindex;
- /*
+ /**
*support for JOYAXIS_MAX axes (in pairs)
*/
int m_axis_array[JOYAXIS_MAX];
- /*
+ /**
*support for JOYHAT_MAX hats (each is a direction)
*/
int m_hat_array[JOYHAT_MAX];
- /*
+ /**
* Precision or range of the axes
*/
int m_prec;
- /*
+ /**
* max # of buttons avail
*/
@@ -76,17 +80,17 @@ class SCA_Joystick
int m_buttonmax;
int m_hatmax;
- /* is the joystick initialized ?*/
+ /** is the joystick initialized ?*/
bool m_isinit;
- /* is triggered for each event type */
+ /** is triggered for each event type */
bool m_istrig_axis;
bool m_istrig_button;
bool m_istrig_hat;
#ifndef DISABLE_SDL
- /*
+ /**
* event callbacks
*/
void OnAxisMotion(SDL_Event *sdl_event);
@@ -99,27 +103,27 @@ class SCA_Joystick
#endif
#endif
- /*
+ /**
* Open the joystick
*/
bool CreateJoystickDevice(void);
- /*
+ /**
* Close the joystick
*/
void DestroyJoystickDevice(void);
- /*
+ /**
* fills the axis mnember values
*/
void pFillButtons(void);
- /*
+ /**
* returns m_axis_array
*/
int pAxisTest(int axisnum);
- /*
+ /**
* returns m_axis_array
*/
int pGetAxis(int axisnum, int udlr);
@@ -146,7 +150,7 @@ public:
bool aButtonReleaseIsPositive(int button);
bool aHatIsPositive(int hatnum, int dir);
- /*
+ /**
* precision is default '3200' which is overridden by input
*/
@@ -176,7 +180,7 @@ public:
return m_istrig_hat;
}
- /*
+ /**
* returns the # of...
*/
@@ -184,7 +188,7 @@ public:
int GetNumberOfButtons(void);
int GetNumberOfHats(void);
- /*
+ /**
* Test if the joystick is connected
*/
int Connected(void);
diff --git a/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h b/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h
index 4b66535de43..69fc393cbd7 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h
+++ b/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -24,6 +24,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SCA_JoystickDefines.h
+ * \ingroup gamelogic
+ */
+
#ifndef _SCA_JOYSTICKDEFINES_H_
#define _SCA_JOYSTICKDEFINES_H_
diff --git a/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp b/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp
index 17cf242bf5c..b6e313aa6c2 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp
+++ b/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -24,6 +24,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp
+ * \ingroup gamelogic
+ */
+
#ifndef DISABLE_SDL
#include <SDL.h>
#endif
diff --git a/source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h b/source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h
index 4e7f6f73413..02dd8145bb7 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h
+++ b/source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_JoystickPrivate.h
+ * \ingroup gamelogic
+ */
+
#ifndef __SCA_JOYSTICKPRIVATE_H__
#define __SCA_JOYSTICKPRIVATE_H__
#include "SCA_Joystick.h"
diff --git a/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp b/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp
index 6fe996992c8..0a65fc1584a 100644
--- a/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp
+++ b/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* SCA_2DFilterActuator.cpp
*
* $Id$
@@ -23,6 +23,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_2DFilterActuator.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <stddef.h>
#include "SCA_IActuator.h"
diff --git a/source/gameengine/GameLogic/SCA_2DFilterActuator.h b/source/gameengine/GameLogic/SCA_2DFilterActuator.h
index 034b10763ce..87d2e8ddbcf 100644
--- a/source/gameengine/GameLogic/SCA_2DFilterActuator.h
+++ b/source/gameengine/GameLogic/SCA_2DFilterActuator.h
@@ -1,4 +1,4 @@
-/**
+/*
* SCA_2DFilterActuator.h
*
* $Id$
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_2DFilterActuator.h
+ * \ingroup gamelogic
+ */
+
#ifndef __SCA_2DFILETRACTUATOR_H__
#define __SCA_2DFILETRACTUATOR_H__
diff --git a/source/gameengine/GameLogic/SCA_ANDController.cpp b/source/gameengine/GameLogic/SCA_ANDController.cpp
index 7e2c5bdb350..4228d8374b7 100644
--- a/source/gameengine/GameLogic/SCA_ANDController.cpp
+++ b/source/gameengine/GameLogic/SCA_ANDController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* 'And' together all inputs
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_ANDController.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_ANDController.h"
#include "SCA_ISensor.h"
#include "SCA_LogicManager.h"
diff --git a/source/gameengine/GameLogic/SCA_ANDController.h b/source/gameengine/GameLogic/SCA_ANDController.h
index a511a438c2f..728dc121f80 100644
--- a/source/gameengine/GameLogic/SCA_ANDController.h
+++ b/source/gameengine/GameLogic/SCA_ANDController.h
@@ -1,4 +1,4 @@
-/**
+/*
* SCA_ANDController.h
*
* $Id$
@@ -29,6 +29,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_ANDController.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_ANDCONTROLLER
#define __KX_ANDCONTROLLER
diff --git a/source/gameengine/GameLogic/SCA_ActuatorEventManager.cpp b/source/gameengine/GameLogic/SCA_ActuatorEventManager.cpp
index db741040ccc..00e3a03dcc8 100644
--- a/source/gameengine/GameLogic/SCA_ActuatorEventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_ActuatorEventManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_ActuatorEventManager.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_ISensor.h"
#include "SCA_ActuatorEventManager.h"
#include "SCA_ActuatorSensor.h"
diff --git a/source/gameengine/GameLogic/SCA_ActuatorEventManager.h b/source/gameengine/GameLogic/SCA_ActuatorEventManager.h
index 859cc5023f1..8530c944c49 100644
--- a/source/gameengine/GameLogic/SCA_ActuatorEventManager.h
+++ b/source/gameengine/GameLogic/SCA_ActuatorEventManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SCA_ActuatorEventManager.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_ACTUATOREVENTMANAGER
#define __KX_ACTUATOREVENTMANAGER
diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp
index a93ac2207e1..81f58c30a7d 100644
--- a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Actuator sensor
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_ActuatorSensor.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <stddef.h>
#include <iostream>
diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.h b/source/gameengine/GameLogic/SCA_ActuatorSensor.h
index eb52d365079..cb3e2e05125 100644
--- a/source/gameengine/GameLogic/SCA_ActuatorSensor.h
+++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.h
@@ -1,4 +1,4 @@
-/**
+/*
* Actuator sensor
*
* $Id$
@@ -29,6 +29,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_ActuatorSensor.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_ACTUATORSENSOR
#define __KX_ACTUATORSENSOR
diff --git a/source/gameengine/GameLogic/SCA_AlwaysEventManager.cpp b/source/gameengine/GameLogic/SCA_AlwaysEventManager.cpp
index 7ecd286ea43..bf858f4d4ef 100644
--- a/source/gameengine/GameLogic/SCA_AlwaysEventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_AlwaysEventManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Manager for 'always' events. Since always sensors can operate in pulse
* mode, they need to be activated.
*
@@ -30,6 +30,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_AlwaysEventManager.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_AlwaysEventManager.h"
#include "SCA_LogicManager.h"
#include <vector>
diff --git a/source/gameengine/GameLogic/SCA_AlwaysEventManager.h b/source/gameengine/GameLogic/SCA_AlwaysEventManager.h
index 59429303fc4..4e05c7cf60c 100644
--- a/source/gameengine/GameLogic/SCA_AlwaysEventManager.h
+++ b/source/gameengine/GameLogic/SCA_AlwaysEventManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SCA_AlwaysEventManager.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_ALWAYSEVENTMGR
#define __KX_ALWAYSEVENTMGR
#include "SCA_EventManager.h"
diff --git a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp
index 88f5855b223..f9e8a70ba41 100644
--- a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Always trigger
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_AlwaysSensor.cpp
+ * \ingroup gamelogic
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
// This warning tells us about truncation of __long__ stl-generated names.
// It can occasionally cause DevStudio to have internal compiler warnings.
diff --git a/source/gameengine/GameLogic/SCA_AlwaysSensor.h b/source/gameengine/GameLogic/SCA_AlwaysSensor.h
index 0de2a3f0629..9e4d120d1bd 100644
--- a/source/gameengine/GameLogic/SCA_AlwaysSensor.h
+++ b/source/gameengine/GameLogic/SCA_AlwaysSensor.h
@@ -1,4 +1,4 @@
-/**
+/*
* SCA_AlwaysSensor.h
*
* $Id$
@@ -29,6 +29,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_AlwaysSensor.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_ALWAYSSENSOR
#define __KX_ALWAYSSENSOR
#include "SCA_ISensor.h"
diff --git a/source/gameengine/GameLogic/SCA_BasicEventManager.cpp b/source/gameengine/GameLogic/SCA_BasicEventManager.cpp
index 2fdb1a96216..21a3f7aba8d 100644
--- a/source/gameengine/GameLogic/SCA_BasicEventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_BasicEventManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Manager for 'always' events. Since always sensors can operate in pulse
* mode, they need to be activated.
*
@@ -30,6 +30,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_BasicEventManager.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_BasicEventManager.h"
#include "SCA_LogicManager.h"
#include <vector>
diff --git a/source/gameengine/GameLogic/SCA_BasicEventManager.h b/source/gameengine/GameLogic/SCA_BasicEventManager.h
index db67b180fd8..8c6741859bf 100644
--- a/source/gameengine/GameLogic/SCA_BasicEventManager.h
+++ b/source/gameengine/GameLogic/SCA_BasicEventManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* Manager for sensor that only need to call Update
*
* $Id$
@@ -29,6 +29,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_BasicEventManager.h
+ * \ingroup gamelogic
+ */
+
#ifndef __SCA_BASICEVENTMGR
#define __SCA_BASICEVENTMGR
diff --git a/source/gameengine/GameLogic/SCA_DelaySensor.cpp b/source/gameengine/GameLogic/SCA_DelaySensor.cpp
index e23135eb14f..7bfe7a0771a 100644
--- a/source/gameengine/GameLogic/SCA_DelaySensor.cpp
+++ b/source/gameengine/GameLogic/SCA_DelaySensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Delay trigger
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_DelaySensor.cpp
+ * \ingroup gamelogic
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
// This warning tells us about truncation of __long__ stl-generated names.
// It can occasionally cause DevStudio to have internal compiler warnings.
diff --git a/source/gameengine/GameLogic/SCA_DelaySensor.h b/source/gameengine/GameLogic/SCA_DelaySensor.h
index c5db16afb54..f690caca50b 100644
--- a/source/gameengine/GameLogic/SCA_DelaySensor.h
+++ b/source/gameengine/GameLogic/SCA_DelaySensor.h
@@ -1,4 +1,4 @@
-/**
+/*
* SCA_DelaySensor.h
*
* $Id$
@@ -29,6 +29,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_DelaySensor.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_DELAYSENSOR
#define __KX_DELAYSENSOR
#include "SCA_ISensor.h"
diff --git a/source/gameengine/GameLogic/SCA_EventManager.cpp b/source/gameengine/GameLogic/SCA_EventManager.cpp
index 3a4a06ebfbd..e02bb0c5029 100644
--- a/source/gameengine/GameLogic/SCA_EventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_EventManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_EventManager.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <assert.h>
#include "SCA_EventManager.h"
#include "SCA_ISensor.h"
diff --git a/source/gameengine/GameLogic/SCA_EventManager.h b/source/gameengine/GameLogic/SCA_EventManager.h
index b01d3641cdb..88a750d346c 100644
--- a/source/gameengine/GameLogic/SCA_EventManager.h
+++ b/source/gameengine/GameLogic/SCA_EventManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SCA_EventManager.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_EVENTMANAGER
#define __KX_EVENTMANAGER
diff --git a/source/gameengine/GameLogic/SCA_ExpressionController.cpp b/source/gameengine/GameLogic/SCA_ExpressionController.cpp
index b678648ca58..ef33a54ae3e 100644
--- a/source/gameengine/GameLogic/SCA_ExpressionController.cpp
+++ b/source/gameengine/GameLogic/SCA_ExpressionController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* 'Expression Controller enables to calculate an expression that wires inputs to output
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_ExpressionController.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_ExpressionController.h"
#include "SCA_ISensor.h"
#include "SCA_LogicManager.h"
diff --git a/source/gameengine/GameLogic/SCA_ExpressionController.h b/source/gameengine/GameLogic/SCA_ExpressionController.h
index 38e3904a8d6..2c3005c4c2d 100644
--- a/source/gameengine/GameLogic/SCA_ExpressionController.h
+++ b/source/gameengine/GameLogic/SCA_ExpressionController.h
@@ -1,4 +1,4 @@
-/**
+/*
* KX_EXPRESSIONController.h
*
* $Id$
@@ -29,6 +29,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_ExpressionController.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_EXPRESSIONCONTROLLER
#define __KX_EXPRESSIONCONTROLLER
diff --git a/source/gameengine/GameLogic/SCA_IActuator.cpp b/source/gameengine/GameLogic/SCA_IActuator.cpp
index b836227895f..f6739976ffd 100644
--- a/source/gameengine/GameLogic/SCA_IActuator.cpp
+++ b/source/gameengine/GameLogic/SCA_IActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_IActuator.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_IActuator.h"
#include <stdio.h>
diff --git a/source/gameengine/GameLogic/SCA_IActuator.h b/source/gameengine/GameLogic/SCA_IActuator.h
index d3ead7c7460..bfcec983e2a 100644
--- a/source/gameengine/GameLogic/SCA_IActuator.h
+++ b/source/gameengine/GameLogic/SCA_IActuator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,13 +26,18 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SCA_IActuator.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_IACTUATOR
#define __KX_IACTUATOR
#include "SCA_IController.h"
#include <vector>
-/*
+/**
* Use of SG_DList : None
* Use of SG_QList : element of activated actuator list of their owner
* Head: SCA_IObject::m_activeActuators
diff --git a/source/gameengine/GameLogic/SCA_IController.cpp b/source/gameengine/GameLogic/SCA_IController.cpp
index 6134b229266..6dd04750081 100644
--- a/source/gameengine/GameLogic/SCA_IController.cpp
+++ b/source/gameengine/GameLogic/SCA_IController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_IController.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <stddef.h>
#include "SCA_IController.h"
diff --git a/source/gameengine/GameLogic/SCA_IController.h b/source/gameengine/GameLogic/SCA_IController.h
index 2d19770be4a..541d69c6f3b 100644
--- a/source/gameengine/GameLogic/SCA_IController.h
+++ b/source/gameengine/GameLogic/SCA_IController.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,13 +26,18 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SCA_IController.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_ICONTROLLER
#define __KX_ICONTROLLER
#include "SCA_ILogicBrick.h"
#include "PyObjectPlus.h"
-/*
+/**
* Use of SG_DList element: none
* Use of SG_QList element: build ordered list of activated controller on the owner object
* Head: SCA_IObject::m_activeControllers
diff --git a/source/gameengine/GameLogic/SCA_IInputDevice.cpp b/source/gameengine/GameLogic/SCA_IInputDevice.cpp
index 9d902681d36..4ff80cdf46d 100644
--- a/source/gameengine/GameLogic/SCA_IInputDevice.cpp
+++ b/source/gameengine/GameLogic/SCA_IInputDevice.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_IInputDevice.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <assert.h>
#include "SCA_IInputDevice.h"
diff --git a/source/gameengine/GameLogic/SCA_IInputDevice.h b/source/gameengine/GameLogic/SCA_IInputDevice.h
index 0dbfe424e2c..49d52d0befc 100644
--- a/source/gameengine/GameLogic/SCA_IInputDevice.h
+++ b/source/gameengine/GameLogic/SCA_IInputDevice.h
@@ -1,7 +1,4 @@
-/**
- * Interface for input devices. The defines for keyboard/system/mouse events
- * here are for internal use in the KX module.
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +27,13 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_IController.h
+ * \ingroup gamelogic
+ * \brief Interface for input devices. The defines for keyboard/system/mouse events
+ * here are for internal use in the KX module.
+ *
+ */
+
#ifndef KX_INPUTDEVICE_H
#define KX_INPUTDEVICE_H
diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
index 6fa83994bd6..2d0cb16b63c 100644
--- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
+++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_ILogicBrick.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <stddef.h>
#include "SCA_ILogicBrick.h"
diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.h b/source/gameengine/GameLogic/SCA_ILogicBrick.h
index a444210e8d9..e74cd601b6b 100644
--- a/source/gameengine/GameLogic/SCA_ILogicBrick.h
+++ b/source/gameengine/GameLogic/SCA_ILogicBrick.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SCA_ILogicBrick.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_ILOGICBRICK
#define __KX_ILOGICBRICK
diff --git a/source/gameengine/GameLogic/SCA_IObject.cpp b/source/gameengine/GameLogic/SCA_IObject.cpp
index ff71d1bf96b..7bf3e75795d 100644
--- a/source/gameengine/GameLogic/SCA_IObject.cpp
+++ b/source/gameengine/GameLogic/SCA_IObject.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/GameLogic/SCA_IObject.cpp
+ * \ingroup gamelogic
+ */
+
#include <iostream>
#include <algorithm>
diff --git a/source/gameengine/GameLogic/SCA_IObject.h b/source/gameengine/GameLogic/SCA_IObject.h
index 591be6fe53b..8ff7dcc4ad5 100644
--- a/source/gameengine/GameLogic/SCA_IObject.h
+++ b/source/gameengine/GameLogic/SCA_IObject.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,9 +25,12 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * An abstract object that has some logic, python scripting and
- * reference counting Note: transformation stuff has been moved to
- * SceneGraph
+ */
+/** \file SCA_IController.h
+ * \ingroup gamelogic
+ * \brief An abstract object that has some logic, python scripting and
+ * reference counting Note: transformation stuff has been moved to
+ * SceneGraph
*/
#ifndef SCA_IOBJECT_H
diff --git a/source/gameengine/GameLogic/SCA_IScene.cpp b/source/gameengine/GameLogic/SCA_IScene.cpp
index 75e323efe94..9cff5a0ab04 100644
--- a/source/gameengine/GameLogic/SCA_IScene.cpp
+++ b/source/gameengine/GameLogic/SCA_IScene.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_IScene.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_IScene.h"
#include "Value.h"
diff --git a/source/gameengine/GameLogic/SCA_IScene.h b/source/gameengine/GameLogic/SCA_IScene.h
index 93b040c9a31..a441a512550 100644
--- a/source/gameengine/GameLogic/SCA_IScene.h
+++ b/source/gameengine/GameLogic/SCA_IScene.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SCA_IScene.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_ISCENE_H
#define __KX_ISCENE_H
diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp
index bb86b3735bc..0d09e33a81b 100644
--- a/source/gameengine/GameLogic/SCA_ISensor.cpp
+++ b/source/gameengine/GameLogic/SCA_ISensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Abstract class for sensor logic bricks
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_ISensor.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <stddef.h>
#include "SCA_ISensor.h"
diff --git a/source/gameengine/GameLogic/SCA_ISensor.h b/source/gameengine/GameLogic/SCA_ISensor.h
index f31dd83343b..741448b1096 100644
--- a/source/gameengine/GameLogic/SCA_ISensor.h
+++ b/source/gameengine/GameLogic/SCA_ISensor.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,8 +25,12 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Interface Class for all logic Sensors. Implements
- * pulsemode and pulsefrequency, and event suppression.
+ */
+
+/** \file SCA_IController.h
+ * \ingroup gamelogic
+ * \brief Interface Class for all logic Sensors. Implements
+ * pulsemode and pulsefrequency, and event suppression.
*/
#ifndef __SCA_ISENSOR
diff --git a/source/gameengine/GameLogic/SCA_JoystickManager.cpp b/source/gameengine/GameLogic/SCA_JoystickManager.cpp
index 5a975552d3d..19633c2e09d 100644
--- a/source/gameengine/GameLogic/SCA_JoystickManager.cpp
+++ b/source/gameengine/GameLogic/SCA_JoystickManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -24,6 +24,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/GameLogic/SCA_JoystickManager.cpp
+ * \ingroup gamelogic
+ */
+
#include "SCA_JoystickSensor.h"
#include "SCA_JoystickManager.h"
#include "SCA_LogicManager.h"
diff --git a/source/gameengine/GameLogic/SCA_JoystickManager.h b/source/gameengine/GameLogic/SCA_JoystickManager.h
index e5f53442049..dc778f231af 100644
--- a/source/gameengine/GameLogic/SCA_JoystickManager.h
+++ b/source/gameengine/GameLogic/SCA_JoystickManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_JoystickManager.h
+ * \ingroup gamelogic
+ */
+
#ifndef __JOYSTICKMANAGER_H_
#define __JOYSTICKMANAGER_H_
diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp
index cace4198ed8..b32114722d4 100644
--- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp
@@ -24,6 +24,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/GameLogic/SCA_JoystickSensor.cpp
+ * \ingroup gamelogic
+ */
+
#include "SCA_JoystickManager.h"
#include "SCA_JoystickSensor.h"
diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.h b/source/gameengine/GameLogic/SCA_JoystickSensor.h
index 39f826dfe02..b4ed2c06d2f 100644
--- a/source/gameengine/GameLogic/SCA_JoystickSensor.h
+++ b/source/gameengine/GameLogic/SCA_JoystickSensor.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_JoystickSensor.h
+ * \ingroup gamelogic
+ */
+
#ifndef __JOYSENSOR_H_
#define __JOYSENSOR_H
diff --git a/source/gameengine/GameLogic/SCA_KeyboardManager.cpp b/source/gameengine/GameLogic/SCA_KeyboardManager.cpp
index eba904ba647..73aece3901c 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardManager.cpp
+++ b/source/gameengine/GameLogic/SCA_KeyboardManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Manager for keyboard events
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_KeyboardManager.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "BoolValue.h"
#include "SCA_KeyboardManager.h"
#include "SCA_KeyboardSensor.h"
diff --git a/source/gameengine/GameLogic/SCA_KeyboardManager.h b/source/gameengine/GameLogic/SCA_KeyboardManager.h
index 53735f9fae1..a74636d4582 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardManager.h
+++ b/source/gameengine/GameLogic/SCA_KeyboardManager.h
@@ -1,6 +1,4 @@
-/**
- * Manager for keyboard events
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,12 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_KeyboardManager.h
+ * \ingroup gamelogic
+ * \brief Manager for keyboard events
+ *
+ */
+
#ifndef __KX_KEYBOARDMANAGER
#define __KX_KEYBOARDMANAGER
diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
index 7368869bc2d..513be43ec28 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Sensor for keyboard input
*/
+/** \file gameengine/GameLogic/SCA_KeyboardSensor.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <stddef.h>
#include "SCA_KeyboardSensor.h"
diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.h b/source/gameengine/GameLogic/SCA_KeyboardSensor.h
index 0a3b25ac361..ee40567fce2 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardSensor.h
+++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Sensor for keyboard input
+ */
+
+/** \file SCA_KeyboardSensor.h
+ * \ingroup gamelogic
+ * \brief Sensor for keyboard input
*/
#ifndef __KX_KEYBOARDSENSOR
diff --git a/source/gameengine/GameLogic/SCA_LogicManager.cpp b/source/gameengine/GameLogic/SCA_LogicManager.cpp
index ab06fe7f9ef..28f96243dd8 100644
--- a/source/gameengine/GameLogic/SCA_LogicManager.cpp
+++ b/source/gameengine/GameLogic/SCA_LogicManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
* Regulates the top-level logic behaviour for one scene.
*/
+
+/** \file gameengine/GameLogic/SCA_LogicManager.cpp
+ * \ingroup gamelogic
+ */
+
#include "Value.h"
#include "SCA_LogicManager.h"
#include "SCA_ISensor.h"
diff --git a/source/gameengine/GameLogic/SCA_LogicManager.h b/source/gameengine/GameLogic/SCA_LogicManager.h
index f92b27f641a..44dc12a8fd4 100644
--- a/source/gameengine/GameLogic/SCA_LogicManager.h
+++ b/source/gameengine/GameLogic/SCA_LogicManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,7 +25,10 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Regulates the top-level logic behaviour for one scene.
+ */
+/** \file SCA_IController.h
+ * \ingroup gamelogic
+ * \brief Regulates the top-level logic behaviour for one scene.
*/
#ifndef __KX_LOGICMANAGER
#define __KX_LOGICMANAGER
diff --git a/source/gameengine/GameLogic/SCA_MouseManager.cpp b/source/gameengine/GameLogic/SCA_MouseManager.cpp
index 1241bd07229..8c98e5f64f6 100644
--- a/source/gameengine/GameLogic/SCA_MouseManager.cpp
+++ b/source/gameengine/GameLogic/SCA_MouseManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Manager for mouse events
*
*
@@ -30,6 +30,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_MouseManager.cpp
+ * \ingroup gamelogic
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
// This warning tells us about truncation of __long__ stl-generated names.
// It can occasionally cause DevStudio to have internal compiler warnings.
diff --git a/source/gameengine/GameLogic/SCA_MouseManager.h b/source/gameengine/GameLogic/SCA_MouseManager.h
index 8bf060537ca..737da049c2e 100644
--- a/source/gameengine/GameLogic/SCA_MouseManager.h
+++ b/source/gameengine/GameLogic/SCA_MouseManager.h
@@ -1,6 +1,4 @@
-/**
- * Manager for mouse events
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,12 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_MouseManager.h
+ * \ingroup gamelogic
+ * \brief Manager for mouse events.
+ *
+ */
+
#ifndef __KX_MOUSEMANAGER
#define __KX_MOUSEMANAGER
diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp
index 257a67ad947..a1836163e9c 100644
--- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Sensor for mouse input
*
*
@@ -30,6 +30,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_MouseSensor.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <stddef.h>
#include "SCA_MouseSensor.h"
diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.h b/source/gameengine/GameLogic/SCA_MouseSensor.h
index dc0e9a11d39..7b83812a669 100644
--- a/source/gameengine/GameLogic/SCA_MouseSensor.h
+++ b/source/gameengine/GameLogic/SCA_MouseSensor.h
@@ -1,6 +1,4 @@
-/**
- * Senses mouse events
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_MouseSensor.h
+ * \ingroup gamelogic
+ * \brief Senses mouse events
+ */
+
#ifndef __KX_MOUSESENSOR
#define __KX_MOUSESENSOR
diff --git a/source/gameengine/GameLogic/SCA_NANDController.cpp b/source/gameengine/GameLogic/SCA_NANDController.cpp
index bcb2c84a083..b800ebbfa42 100644
--- a/source/gameengine/GameLogic/SCA_NANDController.cpp
+++ b/source/gameengine/GameLogic/SCA_NANDController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* 'Nand' together all inputs
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_NANDController.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_NANDController.h"
#include "SCA_ISensor.h"
#include "SCA_LogicManager.h"
diff --git a/source/gameengine/GameLogic/SCA_NANDController.h b/source/gameengine/GameLogic/SCA_NANDController.h
index b1ec7de13dd..4353c653046 100644
--- a/source/gameengine/GameLogic/SCA_NANDController.h
+++ b/source/gameengine/GameLogic/SCA_NANDController.h
@@ -1,6 +1,4 @@
-/**
- * SCA_NANDController.h
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_NANDController.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_NANDCONTROLLER
#define __KX_NANDCONTROLLER
diff --git a/source/gameengine/GameLogic/SCA_NORController.cpp b/source/gameengine/GameLogic/SCA_NORController.cpp
index 5711fb5751b..3b955d43a7f 100644
--- a/source/gameengine/GameLogic/SCA_NORController.cpp
+++ b/source/gameengine/GameLogic/SCA_NORController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* 'Nor' together all inputs
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_NORController.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_NORController.h"
#include "SCA_ISensor.h"
#include "SCA_LogicManager.h"
diff --git a/source/gameengine/GameLogic/SCA_NORController.h b/source/gameengine/GameLogic/SCA_NORController.h
index 12b2ad99282..5bb3b346e56 100644
--- a/source/gameengine/GameLogic/SCA_NORController.h
+++ b/source/gameengine/GameLogic/SCA_NORController.h
@@ -1,6 +1,4 @@
-/**
- * SCA_NORController.h
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_NORController.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_NORCONTROLLER
#define __KX_NORCONTROLLER
diff --git a/source/gameengine/GameLogic/SCA_ORController.cpp b/source/gameengine/GameLogic/SCA_ORController.cpp
index 72c368d632f..1e1126ba02d 100644
--- a/source/gameengine/GameLogic/SCA_ORController.cpp
+++ b/source/gameengine/GameLogic/SCA_ORController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* 'Or' together all inputs
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_ORController.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_ORController.h"
#include "SCA_ISensor.h"
#include "SCA_LogicManager.h"
diff --git a/source/gameengine/GameLogic/SCA_ORController.h b/source/gameengine/GameLogic/SCA_ORController.h
index eb848c6d9e3..6baaa50f43d 100644
--- a/source/gameengine/GameLogic/SCA_ORController.h
+++ b/source/gameengine/GameLogic/SCA_ORController.h
@@ -1,6 +1,4 @@
-/**
- * SCA_ORController.h
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_ORController.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_ORCONTROLLER
#define __KX_ORCONTROLLER
diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
index bc6604bebd8..008e109384c 100644
--- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
+++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Assign, change, copy properties
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_PropertyActuator.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <stddef.h>
#include "SCA_PropertyActuator.h"
diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.h b/source/gameengine/GameLogic/SCA_PropertyActuator.h
index a38c42f16ad..1ca7b1c4e1e 100644
--- a/source/gameengine/GameLogic/SCA_PropertyActuator.h
+++ b/source/gameengine/GameLogic/SCA_PropertyActuator.h
@@ -1,6 +1,4 @@
-/**
- * SCA_PropertyActuator.h
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_PropertyActuator.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_PROPERTYACTUATOR
#define __KX_PROPERTYACTUATOR
diff --git a/source/gameengine/GameLogic/SCA_PropertyEventManager.cpp b/source/gameengine/GameLogic/SCA_PropertyEventManager.cpp
index f6a1b257c18..28544e74c1b 100644
--- a/source/gameengine/GameLogic/SCA_PropertyEventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_PropertyEventManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_PropertyEventManager.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_ISensor.h"
#include "SCA_PropertyEventManager.h"
diff --git a/source/gameengine/GameLogic/SCA_PropertyEventManager.h b/source/gameengine/GameLogic/SCA_PropertyEventManager.h
index 4e2920d9d70..b928a082a41 100644
--- a/source/gameengine/GameLogic/SCA_PropertyEventManager.h
+++ b/source/gameengine/GameLogic/SCA_PropertyEventManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SCA_PropertyEventManager.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_PROPERTYEVENTMANAGER
#define __KX_PROPERTYEVENTMANAGER
diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.cpp b/source/gameengine/GameLogic/SCA_PropertySensor.cpp
index 55cd2713c35..ce3d2abdc64 100644
--- a/source/gameengine/GameLogic/SCA_PropertySensor.cpp
+++ b/source/gameengine/GameLogic/SCA_PropertySensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Property sensor
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_PropertySensor.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <stddef.h>
#include <iostream>
diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.h b/source/gameengine/GameLogic/SCA_PropertySensor.h
index 5a29c526fc0..a0dee4da5ee 100644
--- a/source/gameengine/GameLogic/SCA_PropertySensor.h
+++ b/source/gameengine/GameLogic/SCA_PropertySensor.h
@@ -1,6 +1,4 @@
-/**
- * Property sensor
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_PropertySensor.h
+ * \ingroup gamelogic
+ * \brief Property sensor
+ */
+
#ifndef __KX_PROPERTYSENSOR
#define __KX_PROPERTYSENSOR
diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp
index bf481b8e799..4e021141f22 100644
--- a/source/gameengine/GameLogic/SCA_PythonController.cpp
+++ b/source/gameengine/GameLogic/SCA_PythonController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Execute Python scripts
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_PythonController.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <stddef.h>
#include "SCA_PythonController.h"
diff --git a/source/gameengine/GameLogic/SCA_PythonController.h b/source/gameengine/GameLogic/SCA_PythonController.h
index 602b5e27e47..3ccbfea7ed5 100644
--- a/source/gameengine/GameLogic/SCA_PythonController.h
+++ b/source/gameengine/GameLogic/SCA_PythonController.h
@@ -1,6 +1,4 @@
-/**
- * Execute Python scripts
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_PythonController.h
+ * \ingroup gamelogic
+ * \brief Execute Python scripts
+ */
+
#ifndef KX_PYTHONCONTROLLER_H
#define KX_PYTHONCONTROLLER_H
diff --git a/source/gameengine/GameLogic/SCA_PythonKeyboard.cpp b/source/gameengine/GameLogic/SCA_PythonKeyboard.cpp
index 213446935b6..f7d3c2f3f06 100644
--- a/source/gameengine/GameLogic/SCA_PythonKeyboard.cpp
+++ b/source/gameengine/GameLogic/SCA_PythonKeyboard.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_PythonKeyboard.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_PythonKeyboard.h"
#include "SCA_IInputDevice.h"
diff --git a/source/gameengine/GameLogic/SCA_PythonKeyboard.h b/source/gameengine/GameLogic/SCA_PythonKeyboard.h
index 6a89ba7de76..98bde606a47 100644
--- a/source/gameengine/GameLogic/SCA_PythonKeyboard.h
+++ b/source/gameengine/GameLogic/SCA_PythonKeyboard.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_PythonKeyboard.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_PYKEYBOARD
#define __KX_PYKEYBOARD
diff --git a/source/gameengine/GameLogic/SCA_PythonMouse.cpp b/source/gameengine/GameLogic/SCA_PythonMouse.cpp
index 7267eb74594..94a0551c114 100644
--- a/source/gameengine/GameLogic/SCA_PythonMouse.cpp
+++ b/source/gameengine/GameLogic/SCA_PythonMouse.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_PythonMouse.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_PythonMouse.h"
#include "SCA_IInputDevice.h"
#include "RAS_ICanvas.h"
diff --git a/source/gameengine/GameLogic/SCA_PythonMouse.h b/source/gameengine/GameLogic/SCA_PythonMouse.h
index 15a7e19c602..30a30b5d924 100644
--- a/source/gameengine/GameLogic/SCA_PythonMouse.h
+++ b/source/gameengine/GameLogic/SCA_PythonMouse.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,6 +22,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_PythonMouse.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_PYMOUSE
#define __KX_PYMOUSE
diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp
index 76bcf52c295..3a6b00198e1 100644
--- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp
+++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Set random/camera stuff
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_RandomActuator.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <stddef.h>
#include "BoolValue.h"
diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.h b/source/gameengine/GameLogic/SCA_RandomActuator.h
index 1fd2180f32c..d28586b267e 100644
--- a/source/gameengine/GameLogic/SCA_RandomActuator.h
+++ b/source/gameengine/GameLogic/SCA_RandomActuator.h
@@ -1,7 +1,4 @@
-/**
- * Draw a random number, and put it in a property
- *
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_RandomActuator.h
+ * \ingroup gamelogic
+ * \brief Draw a random number, and put it in a property
+ */
+
#ifndef __KX_RANDOMACTUATOR
#define __KX_RANDOMACTUATOR
diff --git a/source/gameengine/GameLogic/SCA_RandomEventManager.cpp b/source/gameengine/GameLogic/SCA_RandomEventManager.cpp
index a0ffed57ba5..0c1d30f77db 100644
--- a/source/gameengine/GameLogic/SCA_RandomEventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_RandomEventManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Manager for random events
*
* $Id$
@@ -28,6 +28,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/GameLogic/SCA_RandomEventManager.cpp
+ * \ingroup gamelogic
+ */
+
#include "SCA_RandomEventManager.h"
#include "SCA_LogicManager.h"
#include "SCA_ISensor.h"
diff --git a/source/gameengine/GameLogic/SCA_RandomEventManager.h b/source/gameengine/GameLogic/SCA_RandomEventManager.h
index 51d233c4321..686cc225eac 100644
--- a/source/gameengine/GameLogic/SCA_RandomEventManager.h
+++ b/source/gameengine/GameLogic/SCA_RandomEventManager.h
@@ -1,6 +1,4 @@
-/**
- * Manager for random events
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_RandomEventManager.h
+ * \ingroup gamelogic
+ * \brief Manager for random events
+ */
+
#ifndef __KX_RANDOMEVENTMGR
#define __KX_RANDOMEVENTMGR
diff --git a/source/gameengine/GameLogic/SCA_RandomNumberGenerator.cpp b/source/gameengine/GameLogic/SCA_RandomNumberGenerator.cpp
index f5cd4b07458..06c24c8211b 100644
--- a/source/gameengine/GameLogic/SCA_RandomNumberGenerator.cpp
+++ b/source/gameengine/GameLogic/SCA_RandomNumberGenerator.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/GameLogic/SCA_RandomNumberGenerator.cpp
+ * \ingroup gamelogic
+ */
/**
* Generate random numbers that can be used by other components. We
* convert to different types/distributions elsewhere. This just
diff --git a/source/gameengine/GameLogic/SCA_RandomNumberGenerator.h b/source/gameengine/GameLogic/SCA_RandomNumberGenerator.h
index 8402d0312fc..0cfd8302ca2 100644
--- a/source/gameengine/GameLogic/SCA_RandomNumberGenerator.h
+++ b/source/gameengine/GameLogic/SCA_RandomNumberGenerator.h
@@ -1,8 +1,4 @@
-/**
- * Generate random numbers that can be used by other components. Each
- * generator needs its own generator, so that the seed can be set
- * on a per-generator basis.
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -31,6 +27,13 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_RandomNumberGenerator.h
+ * \ingroup gamelogic
+ * \brief Generate random numbers that can be used by other components. Each
+ * generator needs its own generator, so that the seed can be set
+ * on a per-generator basis.
+ */
+
#ifndef __KX_RANDOMNUMBERGENERATOR
#define __KX_RANDOMNUMBERGENERATOR
diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp
index 8b18641c165..99e25042582 100644
--- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Generate random pulses
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_RandomSensor.cpp
+ * \ingroup gamelogic
+ */
+
+
#include <stddef.h>
#include "SCA_RandomSensor.h"
diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.h b/source/gameengine/GameLogic/SCA_RandomSensor.h
index af5a767c1c1..d559e17810b 100644
--- a/source/gameengine/GameLogic/SCA_RandomSensor.h
+++ b/source/gameengine/GameLogic/SCA_RandomSensor.h
@@ -1,6 +1,4 @@
-/**
- * Generate random pulses
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_RandomSensor.h
+ * \ingroup gamelogic
+ * \brief Generate random pulses
+ */
+
#ifndef __KX_RANDOMSENSOR
#define __KX_RANDOMSENSOR
diff --git a/source/gameengine/GameLogic/SCA_TimeEventManager.cpp b/source/gameengine/GameLogic/SCA_TimeEventManager.cpp
index 8b99fd669a9..55e9ca917f8 100644
--- a/source/gameengine/GameLogic/SCA_TimeEventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_TimeEventManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_TimeEventManager.cpp
+ * \ingroup gamelogic
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
// This warning tells us about truncation of __long__ stl-generated names.
// It can occasionally cause DevStudio to have internal compiler warnings.
@@ -109,3 +114,9 @@ void SCA_TimeEventManager::RemoveTimeProperty(CValue* timeval)
}
}
}
+
+vector<CValue*> SCA_TimeEventManager::GetTimeValues()
+{
+ return m_timevalues;
+}
+
diff --git a/source/gameengine/GameLogic/SCA_TimeEventManager.h b/source/gameengine/GameLogic/SCA_TimeEventManager.h
index b2a2eb5fe5d..43eacfe16fa 100644
--- a/source/gameengine/GameLogic/SCA_TimeEventManager.h
+++ b/source/gameengine/GameLogic/SCA_TimeEventManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SCA_TimeEventManager.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_TIMEEVENTMANAGER
#define __KX_TIMEEVENTMANAGER
@@ -49,6 +54,7 @@ public:
void AddTimeProperty(CValue* timeval);
void RemoveTimeProperty(CValue* timeval);
+ vector<CValue*> GetTimeValues();
#ifdef WITH_CXX_GUARDEDALLOC
public:
diff --git a/source/gameengine/GameLogic/SCA_XNORController.cpp b/source/gameengine/GameLogic/SCA_XNORController.cpp
index f1f76c83718..01765796fa5 100644
--- a/source/gameengine/GameLogic/SCA_XNORController.cpp
+++ b/source/gameengine/GameLogic/SCA_XNORController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* 'Xnor' together all inputs
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_XNORController.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_XNORController.h"
#include "SCA_ISensor.h"
#include "SCA_LogicManager.h"
diff --git a/source/gameengine/GameLogic/SCA_XNORController.h b/source/gameengine/GameLogic/SCA_XNORController.h
index 54361be163a..5696585a0fc 100644
--- a/source/gameengine/GameLogic/SCA_XNORController.h
+++ b/source/gameengine/GameLogic/SCA_XNORController.h
@@ -1,6 +1,4 @@
-/**
- * SCA_XNORController.h
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_XNORController.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_XNORCONTROLLER
#define __KX_XNORCONTROLLER
diff --git a/source/gameengine/GameLogic/SCA_XORController.cpp b/source/gameengine/GameLogic/SCA_XORController.cpp
index ee63b72e455..f5eefd5cc08 100644
--- a/source/gameengine/GameLogic/SCA_XORController.cpp
+++ b/source/gameengine/GameLogic/SCA_XORController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* 'Xor' together all inputs
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GameLogic/SCA_XORController.cpp
+ * \ingroup gamelogic
+ */
+
+
#include "SCA_XORController.h"
#include "SCA_ISensor.h"
#include "SCA_LogicManager.h"
diff --git a/source/gameengine/GameLogic/SCA_XORController.h b/source/gameengine/GameLogic/SCA_XORController.h
index 940e3d2135c..84f7120546f 100644
--- a/source/gameengine/GameLogic/SCA_XORController.h
+++ b/source/gameengine/GameLogic/SCA_XORController.h
@@ -1,6 +1,4 @@
-/**
- * SCA_XORController.h
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SCA_XORController.h
+ * \ingroup gamelogic
+ */
+
#ifndef __KX_XORCONTROLLER
#define __KX_XORCONTROLLER
diff --git a/source/gameengine/GamePlayer/common/GPC_Canvas.cpp b/source/gameengine/GamePlayer/common/GPC_Canvas.cpp
index b90aec75959..7ea5da9433c 100644
--- a/source/gameengine/GamePlayer/common/GPC_Canvas.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_Canvas.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GamePlayer/common/GPC_Canvas.cpp
+ * \ingroup player
+ */
+
+
#ifndef NOPNG
#ifdef WIN32
#include "png.h"
diff --git a/source/gameengine/GamePlayer/common/GPC_Canvas.h b/source/gameengine/GamePlayer/common/GPC_Canvas.h
index 6e5d58c8478..87693696c2a 100644
--- a/source/gameengine/GamePlayer/common/GPC_Canvas.h
+++ b/source/gameengine/GamePlayer/common/GPC_Canvas.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPC_Canvas.h
+ * \ingroup player
+ */
+
#ifndef _GPC_CANVAS_H_
#define _GPC_CANVAS_H_
diff --git a/source/gameengine/GamePlayer/common/GPC_Engine.cpp b/source/gameengine/GamePlayer/common/GPC_Engine.cpp
index 54ace227821..48ebfcaadf2 100644
--- a/source/gameengine/GamePlayer/common/GPC_Engine.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_Engine.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GamePlayer/common/GPC_Engine.cpp
+ * \ingroup player
+ */
+
+
#ifdef WIN32
#pragma warning (disable:4786) // suppress stl-MSVC debug info warning
#endif // WIN32
diff --git a/source/gameengine/GamePlayer/common/GPC_Engine.h b/source/gameengine/GamePlayer/common/GPC_Engine.h
index 0b7c85396f2..cfa280c5385 100644
--- a/source/gameengine/GamePlayer/common/GPC_Engine.h
+++ b/source/gameengine/GamePlayer/common/GPC_Engine.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPC_Engine.h
+ * \ingroup player
+ */
+
#ifndef __GPC_ENGINE_H
#define __GPC_ENGINE_H
diff --git a/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp b/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp
index 3d61e63f09e..957ab2b70d1 100644
--- a/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GamePlayer/common/GPC_KeyboardDevice.cpp
+ * \ingroup player
+ */
+
+
#include "GPC_KeyboardDevice.h"
#include <cstdlib>
diff --git a/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.h b/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.h
index 206d37f7be6..a35a55ddf03 100644
--- a/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.h
+++ b/source/gameengine/GamePlayer/common/GPC_KeyboardDevice.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPC_KeyboardDevice.h
+ * \ingroup player
+ */
+
#ifndef __GPC_KEYBOARDDEVICE_H
#define __GPC_KEYBOARDDEVICE_H
diff --git a/source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp b/source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp
index 706c3d178cd..53b061acf69 100644
--- a/source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GamePlayer/common/GPC_MouseDevice.cpp
+ * \ingroup player
+ */
+
+
#include "GPC_MouseDevice.h"
GPC_MouseDevice::GPC_MouseDevice()
diff --git a/source/gameengine/GamePlayer/common/GPC_MouseDevice.h b/source/gameengine/GamePlayer/common/GPC_MouseDevice.h
index 41f34b8e22f..d35faa30d92 100644
--- a/source/gameengine/GamePlayer/common/GPC_MouseDevice.h
+++ b/source/gameengine/GamePlayer/common/GPC_MouseDevice.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPC_MouseDevice.h
+ * \ingroup player
+ */
+
#ifndef __GPC_MOUSE_DEVICE_H
#define __GPC_MOUSE_DEVICE_H
diff --git a/source/gameengine/GamePlayer/common/GPC_RawImage.cpp b/source/gameengine/GamePlayer/common/GPC_RawImage.cpp
index 42f3b2dc1e1..126223f072b 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawImage.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_RawImage.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/GamePlayer/common/GPC_RawImage.cpp
+ * \ingroup player
+ */
+
#include <iostream>
#include <string.h>
diff --git a/source/gameengine/GamePlayer/common/GPC_RawImage.h b/source/gameengine/GamePlayer/common/GPC_RawImage.h
index b66567854dd..2db9c093e36 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawImage.h
+++ b/source/gameengine/GamePlayer/common/GPC_RawImage.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPC_RawImage.h
+ * \ingroup player
+ */
+
#ifndef __GPC_RAWIMAGE_H__
#define __GPC_RAWIMAGE_H__
diff --git a/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.cpp b/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.cpp
index 159a6f50776..160b3ad3da3 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.cpp
+ * \ingroup player
+ */
+
+
// This file is automatically generated. Do not edit by hand!
#include "GPC_RawLoadDotBlendArray.h"
diff --git a/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.h b/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.h
index 4a1ff4e43fa..0b07ab85f65 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.h
+++ b/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPC_RawLoadDotBlendArray.h
+ * \ingroup player
+ */
+
#ifndef __GPC_RAWLOADDOTBLENDARRAY_H
#define __GPC_RAWLOADDOTBLENDARRAY_H
diff --git a/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.cpp b/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.cpp
index 761e53cf1d3..edfbd71da9c 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GamePlayer/common/GPC_RawLogoArrays.cpp
+ * \ingroup player
+ */
+
+
// This file is automatically generated. Do not edit by hand!
#include "GPC_RawLogoArrays.h"
diff --git a/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.h b/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.h
index 464b7bacec8..a1eb0a4861c 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.h
+++ b/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPC_RawLogoArrays.h
+ * \ingroup player
+ */
+
#ifndef __GPC_RAWLOGOARRAYS_H
#define __GPC_RAWLOGOARRAYS_H
diff --git a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
index b5b6851bc52..be84c601a04 100644
--- a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GamePlayer/common/GPC_RenderTools.cpp
+ * \ingroup player
+ */
+
+
#include "GL/glew.h"
#include "RAS_IRenderTools.h"
diff --git a/source/gameengine/GamePlayer/common/GPC_RenderTools.h b/source/gameengine/GamePlayer/common/GPC_RenderTools.h
index 714d686439d..ee490dacddb 100644
--- a/source/gameengine/GamePlayer/common/GPC_RenderTools.h
+++ b/source/gameengine/GamePlayer/common/GPC_RenderTools.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPC_RenderTools.h
+ * \ingroup player
+ */
+
#ifndef __GPC_RENDERTOOLS_H
#define __GPC_RENDERTOOLS_H
diff --git a/source/gameengine/GamePlayer/common/GPC_System.cpp b/source/gameengine/GamePlayer/common/GPC_System.cpp
index 36022bae9dd..514bd2fa4dc 100644
--- a/source/gameengine/GamePlayer/common/GPC_System.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_System.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GamePlayer/common/GPC_System.cpp
+ * \ingroup player
+ */
+
+
#include "GPC_System.h"
#include "GPC_KeyboardDevice.h"
diff --git a/source/gameengine/GamePlayer/common/GPC_System.h b/source/gameengine/GamePlayer/common/GPC_System.h
index 65a488e08bd..51847827f10 100644
--- a/source/gameengine/GamePlayer/common/GPC_System.h
+++ b/source/gameengine/GamePlayer/common/GPC_System.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPC_System.h
+ * \ingroup player
+ */
+
#ifndef __GPC_SYSTEM_H
#define __GPC_SYSTEM_H
diff --git a/source/gameengine/GamePlayer/common/bmfont.cpp b/source/gameengine/GamePlayer/common/bmfont.cpp
index 3532eb81f87..e3b900173d9 100644
--- a/source/gameengine/GamePlayer/common/bmfont.cpp
+++ b/source/gameengine/GamePlayer/common/bmfont.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* bmfont.c
*
* 04-10-2000 frank
@@ -32,6 +32,11 @@
*
*/
+/** \file gameengine/GamePlayer/common/bmfont.cpp
+ * \ingroup player
+ */
+
+
/**
* Two external functions:
*
diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
index 060f2f6c3c4..e00a890a1fb 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* GHOST Blender Player application implementation file.
*/
+/** \file gameengine/GamePlayer/ghost/GPG_Application.cpp
+ * \ingroup player
+ */
+
+
#ifdef WIN32
#pragma warning (disable:4786) // suppress stl-MSVC debug info warning
#include <windows.h>
diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.h b/source/gameengine/GamePlayer/ghost/GPG_Application.h
index 48a6c8e78ec..850b34d5b69 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_Application.h
+++ b/source/gameengine/GamePlayer/ghost/GPG_Application.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * GHOST Blender Player application declaration file.
+ */
+
+/** \file GPG_Application.h
+ * \ingroup player
+ * \brief GHOST Blender Player application declaration file.
*/
#include "GHOST_IEventConsumer.h"
diff --git a/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp b/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp
index 24c0102a87c..9bd41163c21 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/GamePlayer/ghost/GPG_Canvas.cpp
+ * \ingroup player
+ */
+
+
#include "GPG_Canvas.h"
#include <assert.h>
#include "GHOST_ISystem.h"
diff --git a/source/gameengine/GamePlayer/ghost/GPG_Canvas.h b/source/gameengine/GamePlayer/ghost/GPG_Canvas.h
index 7b19c03d3c3..e03f7d6740e 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_Canvas.h
+++ b/source/gameengine/GamePlayer/ghost/GPG_Canvas.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file GPG_Canvas.h
+ * \ingroup player
+ */
+
#ifndef _GPG_CANVAS_H_
#define _GPG_CANVAS_H_
diff --git a/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.cpp b/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.cpp
index 2e9810ad0ae..97e166ce6ab 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* GHOST Blender Player keyboard device implementation.
*/
+/** \file gameengine/GamePlayer/ghost/GPG_KeyboardDevice.cpp
+ * \ingroup player
+ */
+
+
#include "GPG_KeyboardDevice.h"
GPG_KeyboardDevice::GPG_KeyboardDevice(void)
diff --git a/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.h b/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.h
index 8fb42caed95..5471db42f3f 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.h
+++ b/source/gameengine/GamePlayer/ghost/GPG_KeyboardDevice.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * GHOST Blender Player keyboard device.
+ */
+
+/** \file GPG_KeyboardDevice.h
+ * \ingroup player
+ * \brief GHOST Blender Player keyboard device.
*/
#ifndef _GPG_KEYBOARDDEVICE_H_
diff --git a/source/gameengine/GamePlayer/ghost/GPG_System.cpp b/source/gameengine/GamePlayer/ghost/GPG_System.cpp
index 94756ec4ed5..1faa3f398c4 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_System.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_System.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Blender Player system on GHOST.
*/
+/** \file gameengine/GamePlayer/ghost/GPG_System.cpp
+ * \ingroup player
+ */
+
+
#include "GPG_System.h"
#include <assert.h>
#include "GHOST_ISystem.h"
diff --git a/source/gameengine/GamePlayer/ghost/GPG_System.h b/source/gameengine/GamePlayer/ghost/GPG_System.h
index e6e5506cbc1..49a91b60415 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_System.h
+++ b/source/gameengine/GamePlayer/ghost/GPG_System.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Blender Player system on GHOST.
+ */
+
+/** \file GPG_System.h
+ * \ingroup player
+ * \brief Blender Player system on GHOST.
*/
#ifndef _GPG_SYSTEM_H_
diff --git a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
index d1039d5c01c..767ccff4259 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Start up of the Blender Player on GHOST.
*/
+/** \file gameengine/GamePlayer/ghost/GPG_ghost.cpp
+ * \ingroup player
+ */
+
+
#include <iostream>
#include <math.h>
diff --git a/source/gameengine/Ketsji/BL_BlenderShader.cpp b/source/gameengine/Ketsji/BL_BlenderShader.cpp
index 109a693ec6d..91982a424c7 100644
--- a/source/gameengine/Ketsji/BL_BlenderShader.cpp
+++ b/source/gameengine/Ketsji/BL_BlenderShader.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/BL_BlenderShader.cpp
+ * \ingroup ketsji
+ */
#include "DNA_customdata_types.h"
#include "DNA_material_types.h"
diff --git a/source/gameengine/Ketsji/BL_BlenderShader.h b/source/gameengine/Ketsji/BL_BlenderShader.h
index c2d4245b77f..2f22e121b8c 100644
--- a/source/gameengine/Ketsji/BL_BlenderShader.h
+++ b/source/gameengine/Ketsji/BL_BlenderShader.h
@@ -1,3 +1,35 @@
+/*
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) Blender Foundation
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file BL_BlenderShader.h
+ * \ingroup ketsji
+ */
#ifndef __BL_GPUSHADER_H__
#define __BL_GPUSHADER_H__
diff --git a/source/gameengine/Ketsji/BL_Material.cpp b/source/gameengine/Ketsji/BL_Material.cpp
index c63b9d55306..25fd5467e93 100644
--- a/source/gameengine/Ketsji/BL_Material.cpp
+++ b/source/gameengine/Ketsji/BL_Material.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/BL_Material.cpp
+ * \ingroup ketsji
+ */
// ------------------------------------
#include "BL_Material.h"
#include "DNA_material_types.h"
diff --git a/source/gameengine/Ketsji/BL_Material.h b/source/gameengine/Ketsji/BL_Material.h
index 62e5a6e638b..126135f3d46 100644
--- a/source/gameengine/Ketsji/BL_Material.h
+++ b/source/gameengine/Ketsji/BL_Material.h
@@ -1,3 +1,8 @@
+
+/** \file BL_Material.h
+ * \ingroup ketsji
+ */
+
#ifndef __BL_MATERIAL_H__
#define __BL_MATERIAL_H__
diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp
index b00c1b7efb7..621cabfe0cf 100644
--- a/source/gameengine/Ketsji/BL_Shader.cpp
+++ b/source/gameengine/Ketsji/BL_Shader.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/BL_Shader.cpp
+ * \ingroup ketsji
+ */
#include "GL/glew.h"
diff --git a/source/gameengine/Ketsji/BL_Shader.h b/source/gameengine/Ketsji/BL_Shader.h
index 77c642ecc7b..41802a0a19f 100644
--- a/source/gameengine/Ketsji/BL_Shader.h
+++ b/source/gameengine/Ketsji/BL_Shader.h
@@ -1,3 +1,8 @@
+
+/** \file BL_Shader.h
+ * \ingroup ketsji
+ */
+
#ifndef __BL_SHADER_H__
#define __BL_SHADER_H__
diff --git a/source/gameengine/Ketsji/BL_Texture.cpp b/source/gameengine/Ketsji/BL_Texture.cpp
index e708775b184..d2438a66367 100644
--- a/source/gameengine/Ketsji/BL_Texture.cpp
+++ b/source/gameengine/Ketsji/BL_Texture.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/BL_Texture.cpp
+ * \ingroup ketsji
+ */
// ------------------------------------
#include "GL/glew.h"
diff --git a/source/gameengine/Ketsji/BL_Texture.h b/source/gameengine/Ketsji/BL_Texture.h
index eb3888b4862..3c60cad4fbf 100644
--- a/source/gameengine/Ketsji/BL_Texture.h
+++ b/source/gameengine/Ketsji/BL_Texture.h
@@ -1,3 +1,8 @@
+
+/** \file BL_Texture.h
+ * \ingroup ketsji
+ */
+
#ifndef __BL_TEXTURE_H__
#define __BL_TEXTURE_H__
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.cpp
index d922fb63b4f..e8e65371d3a 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Ketsji Logic Extenstion: Network Event Manager generic implementation
*/
+/** \file gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.cpp
+ * \ingroup ketsjinet
+ */
+
+
// Ketsji specific sensor part
#include "SCA_ISensor.h"
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.h
index 80139c67fd3..ff9131f464e 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkEventManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,8 +25,13 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Ketsji Logic Extenstion: Network Event Manager class
*/
+
+/** \file KX_NetworkEventManager.h
+ * \ingroup ketsjinet
+ * \brief Ketsji Logic Extenstion: Network Event Manager class
+ */
+
#ifndef KX_NETWORK_EVENTMANAGER_H
#define KX_NETWORK_EVENTMANAGER_H
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
index 3ac95d7eaf8..2e0abc0290c 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Ketsji Logic Extenstion: Network Message Actuator generic implementation
*/
+/** \file gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
+ * \ingroup ketsjinet
+ */
+
+
#include <stddef.h>
#include "NG_NetworkScene.h"
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
index 62bcca19955..3cea20c56d2 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,8 +25,13 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Ketsji Logic Extenstion: Network Message Actuator class
*/
+
+/** \file KX_NetworkMessageActuator.h
+ * \ingroup ketsjinet
+ * \brief Ketsji Logic Extenstion: Network Message Actuator class
+ */
+
#ifndef __KX_NETWORKMESSAGEACTUATOR_H
#define __KX_NETWORKMESSAGEACTUATOR_H
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
index 5d05534b258..6dcf50fa18f 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Ketsji Logic Extenstion: Network Message Sensor generic implementation
*/
+/** \file gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
+ * \ingroup ketsjinet
+ */
+
+
#include <stddef.h>
#include "KX_NetworkMessageSensor.h"
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
index 8f5a11426a7..721e80195c3 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Ketsji Logic Extenstion: Network Message Sensor class
+ */
+
+/** \file KX_NetworkMessageSensor.h
+ * \ingroup ketsjinet
+ * \brief Ketsji Logic Extenstion: Network Message Sensor class
*/
#ifndef __KX_NETWORKMESSAGE_SENSOR_H
#define __KX_NETWORKMESSAGE_SENSOR_H
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.cpp
index 5350c32fff7..0679e34eaad 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,3 +26,8 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.cpp
+ * \ingroup ketsjinet
+ */
+
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.h
index aca0805c337..74b6dfede97 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,3 +27,8 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KXNetwork/KX_NetworkObjectActuator.h
+ * \ingroup ketsjinet
+ */
+
+
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.cpp
index aca0805c337..6140ec337e3 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,3 +27,8 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.cpp
+ * \ingroup ketsjinet
+ */
+
+
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.h
index aca0805c337..b7264bbf4b6 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,3 +27,8 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KXNetwork/KX_NetworkObjectSensor.h
+ * \ingroup ketsjinet
+ */
+
+
diff --git a/source/gameengine/Ketsji/KX_ArmatureSensor.cpp b/source/gameengine/Ketsji/KX_ArmatureSensor.cpp
index 732c0b910df..f39793e0493 100644
--- a/source/gameengine/Ketsji/KX_ArmatureSensor.cpp
+++ b/source/gameengine/Ketsji/KX_ArmatureSensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Armature sensor
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_ArmatureSensor.cpp
+ * \ingroup ketsji
+ */
+
+
#include "DNA_action_types.h"
#include "DNA_constraint_types.h"
#include "BKE_constraint.h"
diff --git a/source/gameengine/Ketsji/KX_ArmatureSensor.h b/source/gameengine/Ketsji/KX_ArmatureSensor.h
index b007899c4ff..42e042e1401 100644
--- a/source/gameengine/Ketsji/KX_ArmatureSensor.h
+++ b/source/gameengine/Ketsji/KX_ArmatureSensor.h
@@ -1,6 +1,4 @@
-/**
- * Property sensor
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_ArmatureSensor.h
+ * \ingroup ketsji
+ * \brief Property sensor
+ */
+
#ifndef __KX_ARMATURESENSOR
#define __KX_ARMATURESENSOR
diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
index a4dc68b92e5..9ff32ba57c5 100644
--- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
+++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/KX_BlenderMaterial.cpp
+ * \ingroup ketsji
+ */
// ------------------------------------
// ...
diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.h b/source/gameengine/Ketsji/KX_BlenderMaterial.h
index 745045ff784..766e20be825 100644
--- a/source/gameengine/Ketsji/KX_BlenderMaterial.h
+++ b/source/gameengine/Ketsji/KX_BlenderMaterial.h
@@ -1,3 +1,8 @@
+
+/** \file KX_BlenderMaterial.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_BLENDER_MATERIAL_H__
#define __KX_BLENDER_MATERIAL_H__
@@ -91,9 +96,9 @@ public:
virtual void Replace_IScene(SCA_IScene *val)
{
+ mScene= static_cast<KX_Scene *>(val);
if (mBlenderShader)
{
- mScene= static_cast<KX_Scene *>(val);
mBlenderShader->SetScene(mScene);
}
};
diff --git a/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp b/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
index c2fb21bf31a..74f410f05f9 100644
--- a/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
+++ b/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/KX_BulletPhysicsController.cpp
+ * \ingroup ketsji
+ */
//under visual studio the #define in KX_ConvertPhysicsObject.h is quicker for recompilation
#include "KX_ConvertPhysicsObject.h"
diff --git a/source/gameengine/Ketsji/KX_BulletPhysicsController.h b/source/gameengine/Ketsji/KX_BulletPhysicsController.h
index a3e8fafec1d..d46caca49f1 100644
--- a/source/gameengine/Ketsji/KX_BulletPhysicsController.h
+++ b/source/gameengine/Ketsji/KX_BulletPhysicsController.h
@@ -1,3 +1,8 @@
+
+/** \file KX_BulletPhysicsController.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_BULLET2PHYSICS_CONTROLLER
#define KX_BULLET2PHYSICS_CONTROLLER
diff --git a/source/gameengine/Ketsji/KX_Camera.cpp b/source/gameengine/Ketsji/KX_Camera.cpp
index 1711ba7f64f..f9368959c92 100644
--- a/source/gameengine/Ketsji/KX_Camera.cpp
+++ b/source/gameengine/Ketsji/KX_Camera.cpp
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
* Camera in the gameengine. Cameras are also used for views.
*/
+
+/** \file gameengine/Ketsji/KX_Camera.cpp
+ * \ingroup ketsji
+ */
+
#include "GL/glew.h"
#include "KX_Camera.h"
diff --git a/source/gameengine/Ketsji/KX_Camera.h b/source/gameengine/Ketsji/KX_Camera.h
index 130dfd4067d..61a0e39e546 100644
--- a/source/gameengine/Ketsji/KX_Camera.h
+++ b/source/gameengine/Ketsji/KX_Camera.h
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Camera in the gameengine. Cameras are also used for views.
+ */
+
+/** \file KX_Camera.h
+ * \ingroup ketsji
+ * \brief Camera in the gameengine. Cameras are also used for views.
*/
#ifndef __KX_CAMERA
diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp
index 18d3e046577..17dfe9474a8 100644
--- a/source/gameengine/Ketsji/KX_CameraActuator.cpp
+++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* KX_CameraActuator.cpp
*
* $Id$
@@ -30,6 +30,11 @@
*
*/
+/** \file gameengine/Ketsji/KX_CameraActuator.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_CameraActuator.h"
#include <iostream>
#include <math.h>
diff --git a/source/gameengine/Ketsji/KX_CameraActuator.h b/source/gameengine/Ketsji/KX_CameraActuator.h
index 0a0a47f1ce2..135a9cad9d8 100644
--- a/source/gameengine/Ketsji/KX_CameraActuator.h
+++ b/source/gameengine/Ketsji/KX_CameraActuator.h
@@ -1,4 +1,4 @@
-/**
+/*
* KX_CameraActuator.h
*
* $Id$
@@ -29,6 +29,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_CameraActuator.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_CAMERAACTUATOR
#define __KX_CAMERAACTUATOR
diff --git a/source/gameengine/Ketsji/KX_CameraIpoSGController.cpp b/source/gameengine/Ketsji/KX_CameraIpoSGController.cpp
index 0bfa1133a1c..bd3ab1d0580 100644
--- a/source/gameengine/Ketsji/KX_CameraIpoSGController.cpp
+++ b/source/gameengine/Ketsji/KX_CameraIpoSGController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_CameraIpoSGController.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_CameraIpoSGController.h"
#include "KX_ScalarInterpolator.h"
#include "KX_Camera.h"
diff --git a/source/gameengine/Ketsji/KX_CameraIpoSGController.h b/source/gameengine/Ketsji/KX_CameraIpoSGController.h
index e6596edbd1d..967decfa7b0 100644
--- a/source/gameengine/Ketsji/KX_CameraIpoSGController.h
+++ b/source/gameengine/Ketsji/KX_CameraIpoSGController.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_CameraIpoSGController.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_CAMERAIPOSGCONTROLLER_H
#define KX_CAMERAIPOSGCONTROLLER_H
diff --git a/source/gameengine/Ketsji/KX_ClientObjectInfo.h b/source/gameengine/Ketsji/KX_ClientObjectInfo.h
index c42843274b3..ae84cf2e300 100644
--- a/source/gameengine/Ketsji/KX_ClientObjectInfo.h
+++ b/source/gameengine/Ketsji/KX_ClientObjectInfo.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_ClientObjectInfo.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_CLIENTOBJECT_INFO_H
#define __KX_CLIENTOBJECT_INFO_H
diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
index 15a4a4680bb..708424cae3a 100644
--- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
+++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Apply a constraint to a position or rotation value
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_ConstraintActuator.cpp
+ * \ingroup ketsji
+ */
+
+
#include "SCA_IActuator.h"
#include "KX_ConstraintActuator.h"
#include "SCA_IObject.h"
diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.h b/source/gameengine/Ketsji/KX_ConstraintActuator.h
index 7bde2c1d3f7..d2eea1f7414 100644
--- a/source/gameengine/Ketsji/KX_ConstraintActuator.h
+++ b/source/gameengine/Ketsji/KX_ConstraintActuator.h
@@ -1,6 +1,4 @@
-/**
- * KX_ConstraintActuator.h
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_ConstraintActuator.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_CONSTRAINTACTUATOR
#define __KX_CONSTRAINTACTUATOR
diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
index 2882ca5a371..95ec6e94f18 100644
--- a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
+++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_ConstraintWrapper.cpp
+ * \ingroup ketsji
+ */
+
+
#include "PyObjectPlus.h"
#include "KX_ConstraintWrapper.h"
#include "PHY_IPhysicsEnvironment.h"
diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.h b/source/gameengine/Ketsji/KX_ConstraintWrapper.h
index 58c204d5da0..1177586b95f 100644
--- a/source/gameengine/Ketsji/KX_ConstraintWrapper.h
+++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_ConstraintWrapper.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_CONSTRAINT_WRAPPER
#define KX_CONSTRAINT_WRAPPER
diff --git a/source/gameengine/Ketsji/KX_ConvertPhysicsObject.h b/source/gameengine/Ketsji/KX_ConvertPhysicsObject.h
index 2bb3534bde7..fa8c8d253e7 100644
--- a/source/gameengine/Ketsji/KX_ConvertPhysicsObject.h
+++ b/source/gameengine/Ketsji/KX_ConvertPhysicsObject.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_ConvertPhysicsObject.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_CONVERTPHYSICSOBJECTS
#define KX_CONVERTPHYSICSOBJECTS
diff --git a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
index e238d7babec..b7cc98bd539 100644
--- a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
+++ b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
+ * \ingroup ketsji
+ */
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif
diff --git a/source/gameengine/Ketsji/KX_Dome.cpp b/source/gameengine/Ketsji/KX_Dome.cpp
index 36fc02ab833..2e1fb933ad0 100644
--- a/source/gameengine/Ketsji/KX_Dome.cpp
+++ b/source/gameengine/Ketsji/KX_Dome.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/KX_Dome.cpp
+ * \ingroup ketsji
+ */
/* $Id$
-----------------------------------------------------------------------------
diff --git a/source/gameengine/Ketsji/KX_Dome.h b/source/gameengine/Ketsji/KX_Dome.h
index 749fbebe61c..844f40f0578 100644
--- a/source/gameengine/Ketsji/KX_Dome.h
+++ b/source/gameengine/Ketsji/KX_Dome.h
@@ -22,6 +22,10 @@ Developed as part of a Research and Development project for SAT - La Soci�t�
-----------------------------------------------------------------------------
*/
+/** \file KX_Dome.h
+ * \ingroup ketsji
+ */
+
#if !defined KX_DOME_H
#define KX_DOME_H
diff --git a/source/gameengine/Ketsji/KX_EmptyObject.cpp b/source/gameengine/Ketsji/KX_EmptyObject.cpp
index 7dc66b3fb88..27ed6c6a6cc 100644
--- a/source/gameengine/Ketsji/KX_EmptyObject.cpp
+++ b/source/gameengine/Ketsji/KX_EmptyObject.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Ketsji/KX_EmptyObject.cpp
+ * \ingroup ketsji
+ */
+
#include "KX_EmptyObject.h"
KX_EmptyObject::~KX_EmptyObject()
diff --git a/source/gameengine/Ketsji/KX_EmptyObject.h b/source/gameengine/Ketsji/KX_EmptyObject.h
index c41e40fdd41..e22e1aa7926 100644
--- a/source/gameengine/Ketsji/KX_EmptyObject.h
+++ b/source/gameengine/Ketsji/KX_EmptyObject.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_EmptyObject.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_EMPTYOBJECT
#define __KX_EMPTYOBJECT
#include "KX_GameObject.h"
diff --git a/source/gameengine/Ketsji/KX_FontObject.cpp b/source/gameengine/Ketsji/KX_FontObject.cpp
index 54f2d05fb28..dbb98588127 100644
--- a/source/gameengine/Ketsji/KX_FontObject.cpp
+++ b/source/gameengine/Ketsji/KX_FontObject.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Ketsji/KX_FontObject.cpp
+ * \ingroup ketsji
+ */
+
#include "KX_FontObject.h"
#include "DNA_curve_types.h"
#include "KX_Scene.h"
diff --git a/source/gameengine/Ketsji/KX_FontObject.h b/source/gameengine/Ketsji/KX_FontObject.h
index a4f9692da57..c29ee4bcdcf 100644
--- a/source/gameengine/Ketsji/KX_FontObject.h
+++ b/source/gameengine/Ketsji/KX_FontObject.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_FontObject.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_FONTOBJECT
#define __KX_FONTOBJECT
#include "KX_GameObject.h"
diff --git a/source/gameengine/Ketsji/KX_GameActuator.cpp b/source/gameengine/Ketsji/KX_GameActuator.cpp
index 4929187c3ee..e0c269d6e26 100644
--- a/source/gameengine/Ketsji/KX_GameActuator.cpp
+++ b/source/gameengine/Ketsji/KX_GameActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* global game stuff
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_GameActuator.cpp
+ * \ingroup ketsji
+ */
+
+
#include <stddef.h>
#include "SCA_IActuator.h"
diff --git a/source/gameengine/Ketsji/KX_GameActuator.h b/source/gameengine/Ketsji/KX_GameActuator.h
index 273d6664e1d..eee38b02406 100644
--- a/source/gameengine/Ketsji/KX_GameActuator.h
+++ b/source/gameengine/Ketsji/KX_GameActuator.h
@@ -1,7 +1,3 @@
-
-//
-// actuator for global game stuff
-//
// $Id$
//
// ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +26,11 @@
// ***** END GPL LICENSE BLOCK *****
//
+/** \file KX_GameActuator.h
+ * \ingroup ketsji
+ * \brief actuator for global game stuff
+ */
+
#ifndef __KX_GAMEACTUATOR
#define __KX_GAMEACTUATOR
diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp
index f515016d0b9..5ca780bb319 100644
--- a/source/gameengine/Ketsji/KX_GameObject.cpp
+++ b/source/gameengine/Ketsji/KX_GameObject.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Game object wrapper
*/
+/** \file gameengine/Ketsji/KX_GameObject.cpp
+ * \ingroup ketsji
+ */
+
+
#if defined(_WIN64)
typedef unsigned __int64 uint_ptr;
#else
diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h
index 974dde6de00..b54fb6b068e 100644
--- a/source/gameengine/Ketsji/KX_GameObject.h
+++ b/source/gameengine/Ketsji/KX_GameObject.h
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * General KX game object.
+ */
+
+/** \file KX_GameObject.h
+ * \ingroup ketsji
+ * \brief General KX game object.
*/
#ifndef __KX_GAMEOBJECT
diff --git a/source/gameengine/Ketsji/KX_IInterpolator.h b/source/gameengine/Ketsji/KX_IInterpolator.h
index aadc964fe49..8eb62f84883 100644
--- a/source/gameengine/Ketsji/KX_IInterpolator.h
+++ b/source/gameengine/Ketsji/KX_IInterpolator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_IInterpolator.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_IINTERPOLATOR_H
#define KX_IINTERPOLATOR_H
diff --git a/source/gameengine/Ketsji/KX_IPOTransform.h b/source/gameengine/Ketsji/KX_IPOTransform.h
index ba2adfe2ef6..98eefa83e0d 100644
--- a/source/gameengine/Ketsji/KX_IPOTransform.h
+++ b/source/gameengine/Ketsji/KX_IPOTransform.h
@@ -1,6 +1,4 @@
-/**
- * An abstract object you can move around in a 3d world, and has some logic
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_IPOTransform.h
+ * \ingroup ketsji
+ * \brief An abstract object you can move around in a 3d world, and has some logic
+ */
+
#ifndef KX_IPOTRANSFORM_H
#define KX_IPOTRANSFORM_H
diff --git a/source/gameengine/Ketsji/KX_IPO_SGController.cpp b/source/gameengine/Ketsji/KX_IPO_SGController.cpp
index abe63a68e79..3c73bb6a619 100644
--- a/source/gameengine/Ketsji/KX_IPO_SGController.cpp
+++ b/source/gameengine/Ketsji/KX_IPO_SGController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Scenegraph controller for ipos.
*/
+/** \file gameengine/Ketsji/KX_IPO_SGController.cpp
+ * \ingroup ketsji
+ */
+
+
#if defined(_WIN64)
typedef unsigned __int64 uint_ptr;
#else
diff --git a/source/gameengine/Ketsji/KX_IPO_SGController.h b/source/gameengine/Ketsji/KX_IPO_SGController.h
index 12803cde2f1..3d52eaea679 100644
--- a/source/gameengine/Ketsji/KX_IPO_SGController.h
+++ b/source/gameengine/Ketsji/KX_IPO_SGController.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_IPO_SGController.h
+ * \ingroup ketsji
+ */
+
#ifndef __IPO_SGCONTROLLER_H
#define __IPO_SGCONTROLLER_H
diff --git a/source/gameengine/Ketsji/KX_IPhysicsController.cpp b/source/gameengine/Ketsji/KX_IPhysicsController.cpp
index 18816e92bbb..4595fa22310 100644
--- a/source/gameengine/Ketsji/KX_IPhysicsController.cpp
+++ b/source/gameengine/Ketsji/KX_IPhysicsController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* @file KX_IPhysicsController.cpp
* $Id$
*
@@ -27,6 +27,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Ketsji/KX_IPhysicsController.cpp
+ * \ingroup ketsji
+ */
+
#include "KX_IPhysicsController.h"
#include "PHY_DynamicTypes.h"
diff --git a/source/gameengine/Ketsji/KX_IPhysicsController.h b/source/gameengine/Ketsji/KX_IPhysicsController.h
index 288e779fee4..8bc28aa82b8 100644
--- a/source/gameengine/Ketsji/KX_IPhysicsController.h
+++ b/source/gameengine/Ketsji/KX_IPhysicsController.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_IPhysicsController.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_IPHYSICSCONTROLLER_H
#define __KX_IPHYSICSCONTROLLER_H
diff --git a/source/gameengine/Ketsji/KX_IScalarInterpolator.h b/source/gameengine/Ketsji/KX_IScalarInterpolator.h
index a84e1b570fd..46781557a01 100644
--- a/source/gameengine/Ketsji/KX_IScalarInterpolator.h
+++ b/source/gameengine/Ketsji/KX_IScalarInterpolator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_IScalarInterpolator.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_ISCALARINTERPOLATOR_H
#define KX_ISCALARINTERPOLATOR_H
diff --git a/source/gameengine/Ketsji/KX_ISceneConverter.h b/source/gameengine/Ketsji/KX_ISceneConverter.h
index 8a11b875347..7d85e69ecdd 100644
--- a/source/gameengine/Ketsji/KX_ISceneConverter.h
+++ b/source/gameengine/Ketsji/KX_ISceneConverter.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_ISceneConverter.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_ISCENECONVERTER_H
#define __KX_ISCENECONVERTER_H
diff --git a/source/gameengine/Ketsji/KX_ISystem.h b/source/gameengine/Ketsji/KX_ISystem.h
index fb019299135..da79bec51d5 100644
--- a/source/gameengine/Ketsji/KX_ISystem.h
+++ b/source/gameengine/Ketsji/KX_ISystem.h
@@ -1,6 +1,4 @@
-/**
-* Abstract system
-*
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_ISystem.h
+ * \ingroup ketsji
+ * \brief Abstract system
+ */
+
#ifndef __KX_ISYSTEM
#define __KX_ISYSTEM
diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp
index d6ff1ee822e..aed6c666404 100644
--- a/source/gameengine/Ketsji/KX_IpoActuator.cpp
+++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Do Ipo stuff
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_IpoActuator.cpp
+ * \ingroup ketsji
+ */
+
+
#if defined (__sgi)
#include <math.h>
#else
diff --git a/source/gameengine/Ketsji/KX_IpoActuator.h b/source/gameengine/Ketsji/KX_IpoActuator.h
index 61e7f0451d1..56a60f48049 100644
--- a/source/gameengine/Ketsji/KX_IpoActuator.h
+++ b/source/gameengine/Ketsji/KX_IpoActuator.h
@@ -1,6 +1,4 @@
-/**
- * Do an object ipo
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_IpoActuator.h
+ * \ingroup ketsji
+ * \brief Do an object ipo
+ */
+
#ifndef __KX_IPOACTUATOR
#define __KX_IPOACTUATOR
diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
index f4fd85affb6..88e178dda19 100644
--- a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
+++ b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
@@ -28,6 +28,11 @@
* The engine ties all game modules together.
*/
+/** \file gameengine/Ketsji/KX_KetsjiEngine.cpp
+ * \ingroup ketsji
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif //WIN32
diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.h b/source/gameengine/Ketsji/KX_KetsjiEngine.h
index 8b07a998c33..8cd6fdb8f5f 100644
--- a/source/gameengine/Ketsji/KX_KetsjiEngine.h
+++ b/source/gameengine/Ketsji/KX_KetsjiEngine.h
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*
*/
+
+/** \file KX_KetsjiEngine.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_KETSJI_ENGINE
#define __KX_KETSJI_ENGINE
diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp
index 3e03a33e82f..49f00e39110 100644
--- a/source/gameengine/Ketsji/KX_Light.cpp
+++ b/source/gameengine/Ketsji/KX_Light.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_Light.cpp
+ * \ingroup ketsji
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif
diff --git a/source/gameengine/Ketsji/KX_Light.h b/source/gameengine/Ketsji/KX_Light.h
index f7b40d24293..08e4e9da2e5 100644
--- a/source/gameengine/Ketsji/KX_Light.h
+++ b/source/gameengine/Ketsji/KX_Light.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_Light.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_LIGHT
#define __KX_LIGHT
diff --git a/source/gameengine/Ketsji/KX_LightIpoSGController.cpp b/source/gameengine/Ketsji/KX_LightIpoSGController.cpp
index 3a010556cfe..8ffaf3e0e63 100644
--- a/source/gameengine/Ketsji/KX_LightIpoSGController.cpp
+++ b/source/gameengine/Ketsji/KX_LightIpoSGController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_LightIpoSGController.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_LightIpoSGController.h"
#include "KX_ScalarInterpolator.h"
#include "KX_Light.h"
diff --git a/source/gameengine/Ketsji/KX_LightIpoSGController.h b/source/gameengine/Ketsji/KX_LightIpoSGController.h
index c857994d145..8271343907c 100644
--- a/source/gameengine/Ketsji/KX_LightIpoSGController.h
+++ b/source/gameengine/Ketsji/KX_LightIpoSGController.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_LightIpoSGController.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_LIGHTIPOSGCONTROLLER_H
#define KX_LIGHTIPOSGCONTROLLER_H
diff --git a/source/gameengine/Ketsji/KX_MaterialIpoController.cpp b/source/gameengine/Ketsji/KX_MaterialIpoController.cpp
index 13d272ee92d..9a19cb08fad 100644
--- a/source/gameengine/Ketsji/KX_MaterialIpoController.cpp
+++ b/source/gameengine/Ketsji/KX_MaterialIpoController.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/KX_MaterialIpoController.cpp
+ * \ingroup ketsji
+ */
#include "KX_MaterialIpoController.h"
#include "KX_ScalarInterpolator.h"
diff --git a/source/gameengine/Ketsji/KX_MaterialIpoController.h b/source/gameengine/Ketsji/KX_MaterialIpoController.h
index a979f59ec95..85b2a971fbe 100644
--- a/source/gameengine/Ketsji/KX_MaterialIpoController.h
+++ b/source/gameengine/Ketsji/KX_MaterialIpoController.h
@@ -1,3 +1,8 @@
+
+/** \file KX_MaterialIpoController.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_MATERIALIPOCONTROLLER_H__
#define __KX_MATERIALIPOCONTROLLER_H__
diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp
index 6fa7e023139..ba41dc355f7 100644
--- a/source/gameengine/Ketsji/KX_MeshProxy.cpp
+++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_MeshProxy.cpp
+ * \ingroup ketsji
+ */
+
+
#ifdef WITH_PYTHON
#include "KX_MeshProxy.h"
diff --git a/source/gameengine/Ketsji/KX_MeshProxy.h b/source/gameengine/Ketsji/KX_MeshProxy.h
index 29231498163..7074c120988 100644
--- a/source/gameengine/Ketsji/KX_MeshProxy.h
+++ b/source/gameengine/Ketsji/KX_MeshProxy.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_MeshProxy.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_MESHPROXY
#define __KX_MESHPROXY
diff --git a/source/gameengine/Ketsji/KX_MotionState.cpp b/source/gameengine/Ketsji/KX_MotionState.cpp
index 08f8ee556d1..db98097a3ce 100644
--- a/source/gameengine/Ketsji/KX_MotionState.cpp
+++ b/source/gameengine/Ketsji/KX_MotionState.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Ketsji/KX_MotionState.cpp
+ * \ingroup ketsji
+ */
+
#include "KX_MotionState.h"
#include "SG_Spatial.h"
diff --git a/source/gameengine/Ketsji/KX_MotionState.h b/source/gameengine/Ketsji/KX_MotionState.h
index 1267abc7fa9..ec6469e4672 100644
--- a/source/gameengine/Ketsji/KX_MotionState.h
+++ b/source/gameengine/Ketsji/KX_MotionState.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_MotionState.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_MOTIONSTATE
#define __KX_MOTIONSTATE
diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
index 637210525f8..6cb80028858 100644
--- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
+++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* KX_MouseFocusSensor determines mouse in/out/over events.
*/
+/** \file gameengine/Ketsji/KX_MouseFocusSensor.cpp
+ * \ingroup ketsji
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
// This warning tells us about truncation of __long__ stl-generated names.
// It can occasionally cause DevStudio to have internal compiler warnings.
diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.h b/source/gameengine/Ketsji/KX_MouseFocusSensor.h
index 3ea0f932314..73c5d94e4a5 100644
--- a/source/gameengine/Ketsji/KX_MouseFocusSensor.h
+++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * KX_MouseFocusSensor determines mouse in/out/over events.
+ */
+
+/** \file KX_MouseFocusSensor.h
+ * \ingroup ketsji
+ * \brief KX_MouseFocusSensor determines mouse in/out/over events.
*/
#ifndef __KX_MOUSEFOCUSSENSOR
diff --git a/source/gameengine/Ketsji/KX_NearSensor.cpp b/source/gameengine/Ketsji/KX_NearSensor.cpp
index c9af5d8d2a5..913a1adac55 100644
--- a/source/gameengine/Ketsji/KX_NearSensor.cpp
+++ b/source/gameengine/Ketsji/KX_NearSensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Sense if other objects are near
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_NearSensor.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_NearSensor.h"
#include "SCA_LogicManager.h"
#include "KX_GameObject.h"
diff --git a/source/gameengine/Ketsji/KX_NearSensor.h b/source/gameengine/Ketsji/KX_NearSensor.h
index 67f235ceae2..d3de44429ff 100644
--- a/source/gameengine/Ketsji/KX_NearSensor.h
+++ b/source/gameengine/Ketsji/KX_NearSensor.h
@@ -1,6 +1,4 @@
-/**
- * Sense if other objects are near
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_NearSensor.h
+ * \ingroup ketsji
+ * \brief Sense if other objects are near
+ */
+
#ifndef KX_NEARSENSOR_H
#define KX_NEARSENSOR_H
diff --git a/source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp b/source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp
index 108cff0232d..0fc410f9d6f 100644
--- a/source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp
+++ b/source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_ObColorIpoSGController.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_ObColorIpoSGController.h"
#include "KX_ScalarInterpolator.h"
#include "KX_GameObject.h"
diff --git a/source/gameengine/Ketsji/KX_ObColorIpoSGController.h b/source/gameengine/Ketsji/KX_ObColorIpoSGController.h
index 4bb18fb392b..67bf561bd22 100644
--- a/source/gameengine/Ketsji/KX_ObColorIpoSGController.h
+++ b/source/gameengine/Ketsji/KX_ObColorIpoSGController.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_ObColorIpoSGController.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_OBCOLORIPOSGCONTROLLER_H
#define KX_OBCOLORIPOSGCONTROLLER_H
diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.cpp b/source/gameengine/Ketsji/KX_ObjectActuator.cpp
index 9f1df329005..83d8f4b883b 100644
--- a/source/gameengine/Ketsji/KX_ObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KX_ObjectActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Do translation/rotation actions
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_ObjectActuator.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_ObjectActuator.h"
#include "KX_GameObject.h"
#include "KX_PyMath.h" // For PyVecTo - should this include be put in PyObjectPlus?
diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.h b/source/gameengine/Ketsji/KX_ObjectActuator.h
index 9dab1e39cba..e45ce899bfc 100644
--- a/source/gameengine/Ketsji/KX_ObjectActuator.h
+++ b/source/gameengine/Ketsji/KX_ObjectActuator.h
@@ -1,6 +1,4 @@
-/**
- * Do translation/rotation actions
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_ObjectActuator.h
+ * \ingroup ketsji
+ * \brief Do translation/rotation actions
+ */
+
#ifndef __KX_OBJECTACTUATOR
#define __KX_OBJECTACTUATOR
diff --git a/source/gameengine/Ketsji/KX_OrientationInterpolator.cpp b/source/gameengine/Ketsji/KX_OrientationInterpolator.cpp
index 8949a85066c..d9483083aa1 100644
--- a/source/gameengine/Ketsji/KX_OrientationInterpolator.cpp
+++ b/source/gameengine/Ketsji/KX_OrientationInterpolator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_OrientationInterpolator.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_OrientationInterpolator.h"
#include "MT_Matrix3x3.h"
#include "KX_IScalarInterpolator.h"
diff --git a/source/gameengine/Ketsji/KX_OrientationInterpolator.h b/source/gameengine/Ketsji/KX_OrientationInterpolator.h
index de41323c289..2ae7b00cb86 100644
--- a/source/gameengine/Ketsji/KX_OrientationInterpolator.h
+++ b/source/gameengine/Ketsji/KX_OrientationInterpolator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_OrientationInterpolator.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_ORIENTATIONINTERPOLATOR
#define KX_ORIENTATIONINTERPOLATOR
diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp
index b41d48f5cf3..6ff1c05b994 100644
--- a/source/gameengine/Ketsji/KX_ParentActuator.cpp
+++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Set or remove an objects parent
*
* $Id$
@@ -32,6 +32,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_ParentActuator.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_ParentActuator.h"
#include "KX_GameObject.h"
#include "KX_PythonInit.h"
diff --git a/source/gameengine/Ketsji/KX_ParentActuator.h b/source/gameengine/Ketsji/KX_ParentActuator.h
index 28745c6d0f5..8723f83920e 100644
--- a/source/gameengine/Ketsji/KX_ParentActuator.h
+++ b/source/gameengine/Ketsji/KX_ParentActuator.h
@@ -1,7 +1,4 @@
-/**
- * Set or remove an objects parent
- *
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -33,6 +30,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_ParentActuator.h
+ * \ingroup ketsji
+ * \brief Set or remove an objects parent
+ */
+
#ifndef __KX_PARENTACTUATOR
#define __KX_PARENTACTUATOR
diff --git a/source/gameengine/Ketsji/KX_PhysicsEngineEnums.h b/source/gameengine/Ketsji/KX_PhysicsEngineEnums.h
index 506ba6365a0..6a9e40e187a 100644
--- a/source/gameengine/Ketsji/KX_PhysicsEngineEnums.h
+++ b/source/gameengine/Ketsji/KX_PhysicsEngineEnums.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_PhysicsEngineEnums.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_PHYSICSENGINEENUMS
#define __KX_PHYSICSENGINEENUMS
diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
index 471774866ac..ad1ea7c1bda 100644
--- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
+++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
+ * \ingroup ketsji
+ */
+
+
#include "PyObjectPlus.h"
#include "KX_PhysicsObjectWrapper.h"
diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h
index ca7e99350c4..739d6b38ea1 100644
--- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h
+++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_PhysicsObjectWrapper.h
+ * \ingroup ketsji
+ */
+
#ifndef PHYP_PHYSICSOBJECT_WRAPPER
#define PHYP_PHYSICSOBJECT_WRAPPER
diff --git a/source/gameengine/Ketsji/KX_PhysicsPropertiesobsolete.h b/source/gameengine/Ketsji/KX_PhysicsPropertiesobsolete.h
index d94b5328488..4cbd1f8b3b2 100644
--- a/source/gameengine/Ketsji/KX_PhysicsPropertiesobsolete.h
+++ b/source/gameengine/Ketsji/KX_PhysicsPropertiesobsolete.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,12 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_PhysicsPropertiesobsolete.h
+ * \ingroup ketsji
+ * \todo check if this file is still needed
+ */
+
#ifndef KX_PROPSH
#define KX_PROPSH
diff --git a/source/gameengine/Ketsji/KX_PolyProxy.cpp b/source/gameengine/Ketsji/KX_PolyProxy.cpp
index 9843d93c506..8c3b2a993e2 100644
--- a/source/gameengine/Ketsji/KX_PolyProxy.cpp
+++ b/source/gameengine/Ketsji/KX_PolyProxy.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_PolyProxy.cpp
+ * \ingroup ketsji
+ */
+
+
#ifdef WITH_PYTHON
#include "KX_PolyProxy.h"
diff --git a/source/gameengine/Ketsji/KX_PolyProxy.h b/source/gameengine/Ketsji/KX_PolyProxy.h
index 179fb67f85f..c99ac20673c 100644
--- a/source/gameengine/Ketsji/KX_PolyProxy.h
+++ b/source/gameengine/Ketsji/KX_PolyProxy.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_PolyProxy.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_POLYROXY
#define __KX_POLYPROXY
diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
index 39f017625dd..dfaf079f36f 100644
--- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
+++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_PolygonMaterial.cpp
+ * \ingroup ketsji
+ */
+
+
#include <stddef.h>
#include "KX_PolygonMaterial.h"
diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.h b/source/gameengine/Ketsji/KX_PolygonMaterial.h
index d71a34989a0..3520995def3 100644
--- a/source/gameengine/Ketsji/KX_PolygonMaterial.h
+++ b/source/gameengine/Ketsji/KX_PolygonMaterial.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_PolygonMaterial.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_POLYGONMATERIAL_H__
#define __KX_POLYGONMATERIAL_H__
diff --git a/source/gameengine/Ketsji/KX_PositionInterpolator.cpp b/source/gameengine/Ketsji/KX_PositionInterpolator.cpp
index 6e047180cdf..8cd6a6dc2c1 100644
--- a/source/gameengine/Ketsji/KX_PositionInterpolator.cpp
+++ b/source/gameengine/Ketsji/KX_PositionInterpolator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_PositionInterpolator.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_PositionInterpolator.h"
#include "MT_Point3.h"
#include "KX_IScalarInterpolator.h"
diff --git a/source/gameengine/Ketsji/KX_PositionInterpolator.h b/source/gameengine/Ketsji/KX_PositionInterpolator.h
index 764c7bd8750..e053770e57e 100644
--- a/source/gameengine/Ketsji/KX_PositionInterpolator.h
+++ b/source/gameengine/Ketsji/KX_PositionInterpolator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_PositionInterpolator.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_POSITIONINTERPOLATOR
#define KX_POSITIONINTERPOLATOR
diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
index d2cb9aef985..f08fc14c29c 100644
--- a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
+++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Ketsji/KX_PyConstraintBinding.cpp
+ * \ingroup ketsji
+ */
+
#include "KX_PyConstraintBinding.h"
#include "PHY_IPhysicsEnvironment.h"
#include "KX_ConstraintWrapper.h"
diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.h b/source/gameengine/Ketsji/KX_PyConstraintBinding.h
index 6da60794eb0..9fbdf037caa 100644
--- a/source/gameengine/Ketsji/KX_PyConstraintBinding.h
+++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_PyConstraintBinding.h
+ * \ingroup ketsji
+ */
+
#ifndef PHY_PYTHON_CONSTRAINTBINDING
#define PHY_PYTHON_CONSTRAINTBINDING
diff --git a/source/gameengine/Ketsji/KX_PyMath.cpp b/source/gameengine/Ketsji/KX_PyMath.cpp
index 45957ca1911..857a61e56a0 100644
--- a/source/gameengine/Ketsji/KX_PyMath.cpp
+++ b/source/gameengine/Ketsji/KX_PyMath.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Initialize Python thingies.
*/
+/** \file gameengine/Ketsji/KX_PyMath.cpp
+ * \ingroup ketsji
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif //WIN32
diff --git a/source/gameengine/Ketsji/KX_PyMath.h b/source/gameengine/Ketsji/KX_PyMath.h
index 282e9a8f1f6..d7ea63c9880 100644
--- a/source/gameengine/Ketsji/KX_PyMath.h
+++ b/source/gameengine/Ketsji/KX_PyMath.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Initialize Python thingies.
+ */
+
+/** \file KX_PyMath.h
+ * \ingroup ketsji
+ * \brief Initialize Python thingies.
*/
#ifndef __KX_PYMATH_H__
diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp
index d0a6a9a9bec..60ee86c52c4 100644
--- a/source/gameengine/Ketsji/KX_PythonInit.cpp
+++ b/source/gameengine/Ketsji/KX_PythonInit.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Initialize Python thingies.
*/
+/** \file gameengine/Ketsji/KX_PythonInit.cpp
+ * \ingroup ketsji
+ */
+
+
#include "GL/glew.h"
#if defined(WIN32) && !defined(FREE_WINDOWS)
diff --git a/source/gameengine/Ketsji/KX_PythonInit.h b/source/gameengine/Ketsji/KX_PythonInit.h
index 7b0ed08c6bb..f062aa2d661 100644
--- a/source/gameengine/Ketsji/KX_PythonInit.h
+++ b/source/gameengine/Ketsji/KX_PythonInit.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_PythonInit.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_PYTHON_INIT
#define __KX_PYTHON_INIT
diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp
index 8a9eac216d1..1c4a17e31fc 100644
--- a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp
+++ b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_PythonInitTypes.cpp
+ * \ingroup ketsji
+ */
+
+
#ifndef _adr_py_init_types_h_ // only process once,
diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.h b/source/gameengine/Ketsji/KX_PythonInitTypes.h
index 1053f320e5e..b113c080f4a 100644
--- a/source/gameengine/Ketsji/KX_PythonInitTypes.h
+++ b/source/gameengine/Ketsji/KX_PythonInitTypes.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_PythonInitTypes.h
+ * \ingroup ketsji
+ */
+
#ifndef _adr_py_init_types_h_ // only process once,
#define _adr_py_init_types_h_ // even if multiply included
diff --git a/source/gameengine/Ketsji/KX_PythonSeq.cpp b/source/gameengine/Ketsji/KX_PythonSeq.cpp
index bed3f33ab77..d60b5a7dc74 100644
--- a/source/gameengine/Ketsji/KX_PythonSeq.cpp
+++ b/source/gameengine/Ketsji/KX_PythonSeq.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Readonly sequence wrapper for lookups on logic bricks
*/
+/** \file gameengine/Ketsji/KX_PythonSeq.cpp
+ * \ingroup ketsji
+ */
+
+
#ifdef WITH_PYTHON
#include "KX_PythonSeq.h"
diff --git a/source/gameengine/Ketsji/KX_PythonSeq.h b/source/gameengine/Ketsji/KX_PythonSeq.h
index 7ca36cc19f4..7146e775a84 100644
--- a/source/gameengine/Ketsji/KX_PythonSeq.h
+++ b/source/gameengine/Ketsji/KX_PythonSeq.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,7 +25,11 @@
* Contributor(s): Campbell Barton
*
* ***** END GPL LICENSE BLOCK *****
- * Readonly sequence wrapper for lookups on logic bricks
+ */
+
+/** \file KX_PythonSeq.h
+ * \ingroup ketsji
+ * \brief Readonly sequence wrapper for lookups on logic bricks
*/
#ifndef _adr_py_seq_h_ // only process once,
diff --git a/source/gameengine/Ketsji/KX_RadarSensor.cpp b/source/gameengine/Ketsji/KX_RadarSensor.cpp
index 7cbdd3bba66..d002d8a8935 100644
--- a/source/gameengine/Ketsji/KX_RadarSensor.cpp
+++ b/source/gameengine/Ketsji/KX_RadarSensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_RadarSensor.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_RadarSensor.h"
#include "KX_GameObject.h"
#include "KX_PyMath.h"
diff --git a/source/gameengine/Ketsji/KX_RadarSensor.h b/source/gameengine/Ketsji/KX_RadarSensor.h
index 17305922385..6caff2758e7 100644
--- a/source/gameengine/Ketsji/KX_RadarSensor.h
+++ b/source/gameengine/Ketsji/KX_RadarSensor.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_RadarSensor.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_RADAR_SENSOR_H
#define __KX_RADAR_SENSOR_H
diff --git a/source/gameengine/Ketsji/KX_RayCast.cpp b/source/gameengine/Ketsji/KX_RayCast.cpp
index 7562265a536..e0fc212f1b0 100644
--- a/source/gameengine/Ketsji/KX_RayCast.cpp
+++ b/source/gameengine/Ketsji/KX_RayCast.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* KX_MouseFocusSensor determines mouse in/out/over events.
*/
+/** \file gameengine/Ketsji/KX_RayCast.cpp
+ * \ingroup ketsji
+ */
+
+
#include <stdlib.h>
#include <stdio.h>
diff --git a/source/gameengine/Ketsji/KX_RayCast.h b/source/gameengine/Ketsji/KX_RayCast.h
index 1512d81e940..963467c5958 100644
--- a/source/gameengine/Ketsji/KX_RayCast.h
+++ b/source/gameengine/Ketsji/KX_RayCast.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_RayCast.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_RAYCAST_H__
#define __KX_RAYCAST_H__
diff --git a/source/gameengine/Ketsji/KX_RayEventManager.cpp b/source/gameengine/Ketsji/KX_RayEventManager.cpp
index 9c9d6722784..3956fa04dff 100644
--- a/source/gameengine/Ketsji/KX_RayEventManager.cpp
+++ b/source/gameengine/Ketsji/KX_RayEventManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Manager for ray events
*
* $Id$
@@ -28,6 +28,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Ketsji/KX_RayEventManager.cpp
+ * \ingroup ketsji
+ */
+
#include "KX_RayEventManager.h"
#include "SCA_LogicManager.h"
#include "SCA_ISensor.h"
diff --git a/source/gameengine/Ketsji/KX_RayEventManager.h b/source/gameengine/Ketsji/KX_RayEventManager.h
index 55c2b81b068..92ce836b950 100644
--- a/source/gameengine/Ketsji/KX_RayEventManager.h
+++ b/source/gameengine/Ketsji/KX_RayEventManager.h
@@ -1,6 +1,4 @@
-/**
- * Manager for ray events
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_RayEventManager.h
+ * \ingroup ketsji
+ * \brief Manager for ray events
+ */
+
#ifndef __KX_RAYEVENTMGR
#define __KX_RAYEVENTMGR
#include "SCA_EventManager.h"
diff --git a/source/gameengine/Ketsji/KX_RaySensor.cpp b/source/gameengine/Ketsji/KX_RaySensor.cpp
index 2434c031a6a..a683c9857aa 100644
--- a/source/gameengine/Ketsji/KX_RaySensor.cpp
+++ b/source/gameengine/Ketsji/KX_RaySensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Cast a ray and feel for objects
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_RaySensor.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_RaySensor.h"
#include "SCA_EventManager.h"
#include "SCA_RandomEventManager.h"
diff --git a/source/gameengine/Ketsji/KX_RaySensor.h b/source/gameengine/Ketsji/KX_RaySensor.h
index ac0b5eba26b..ef8340e9f80 100644
--- a/source/gameengine/Ketsji/KX_RaySensor.h
+++ b/source/gameengine/Ketsji/KX_RaySensor.h
@@ -1,6 +1,4 @@
-/**
- * Cast a ray and feel for objects
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_RaySensor.h
+ * \ingroup ketsji
+ * \brief Cast a ray and feel for objects
+ */
+
#ifndef __KX_RAYSENSOR_H
#define __KX_RAYSENSOR_H
diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
index 34b49045337..521c0038f27 100644
--- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
+ * \ingroup ketsji
+ */
//
// Add an object when this actuator is triggered
//
diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
index 16612f9a743..11f210ad7b5 100644
--- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
@@ -1,8 +1,3 @@
-//
-// Add object to the game world on action of this actuator. A copy is made
-// of a referenced object. The copy inherits some properties from the owner
-// of this actuator.
-//
// $Id$
//
// ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,10 +24,12 @@
// Contributor(s): none yet.
//
// ***** END GPL LICENSE BLOCK *****
-//
-// Previously existed as:
-// \source\gameengine\GameLogic\SCA_AddObjectActuator.h
-// Please look here for revision history.
+
+/** \file KX_SCA_AddObjectActuator.h
+ * \ingroup ketsji
+ * \attention Previously existed as: \source\gameengine\GameLogic\SCA_AddObjectActuator.h
+ * Please look here for revision history.
+ */
#ifndef __KX_SCA_AddObjectActuator
#define __KX_SCA_AddObjectActuator
diff --git a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp
index 6e36bde59ec..40c9c182d99 100644
--- a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/KX_SCA_DynamicActuator.cpp
+ * \ingroup ketsji
+ */
//
// Adjust dynamics settins for this object
//
diff --git a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h
index 43322fdfd96..04b2c00f4c1 100644
--- a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h
@@ -1,6 +1,3 @@
-//
-// Add object to the game world on action of this actuator
-//
// $Id$
//
// ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +26,11 @@
// ***** END GPL LICENSE BLOCK *****
//
+/** \file KX_SCA_DynamicActuator.h
+ * \ingroup ketsji
+ * \brief Add object to the game world on action of this actuator
+ */
+
#ifndef __KX_SCA_DYNAMICACTUATOR
#define __KX_SCA_DYNAMICACTUATOR
diff --git a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp
index f50dc9fc46a..076669e325a 100644
--- a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp
+ * \ingroup ketsji
+ */
+
+
//
// Remove the actuator's parent when triggered
diff --git a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
index cedf17c599b..c8e1af86466 100644
--- a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
@@ -1,6 +1,3 @@
-//
-// Add object to the game world on action of this actuator
-//
// $Id$
//
// ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,9 +25,13 @@
//
// ***** END GPL LICENSE BLOCK *****
//
-// Previously existed as:
-// \source\gameengine\GameLogic\SCA_EndObjectActuator.h
-// Please look here for revision history.
+
+/** \file KX_SCA_EndObjectActuator.h
+ * \ingroup ketsji
+ * \brief Add object to the game world on action of this actuator
+ * \attention Previously existed as: \source\gameengine\GameLogic\SCA_EndObjectActuator.h
+ * Please look here for revision history.
+ */
#ifndef __KX_SCA_ENDOBJECTACTUATOR
#define __KX_SCA_ENDOBJECTACTUATOR
diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
index aff4f4080fd..1c6e5e20250 100644
--- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
+ * \ingroup ketsji
+ */
//
// Replace the mesh for this actuator's parent
//
diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
index 573ec76782c..7838cb63b17 100644
--- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
@@ -1,6 +1,3 @@
-//
-// Add object to the game world on action of this actuator
-//
// $Id$
//
// ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,10 +25,13 @@
//
// ***** END GPL LICENSE BLOCK *****
//
-// Previously existed as:
-// \source\gameengine\GameLogic\SCA_ReplaceMeshActuator.h
-// Please look here for revision history.
-//
+
+/** \file KX_SCA_ReplaceMeshActuator.h
+ * \ingroup ketsji
+ * \brief Add object to the game world on action of this actuator
+ * \attention Previously existed as: \source\gameengine\GameLogic\SCA_ReplaceMeshActuator.h
+ * Please look here for revision history.
+ */
#ifndef __KX_SCA_REPLACEMESHACTUATOR
#define __KX_SCA_REPLACEMESHACTUATOR
diff --git a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp
index 0529195e933..3fec33b119d 100644
--- a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp
+++ b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp
+ * \ingroup ketsji
+ */
+
+
#include <iostream>
#include "KX_SG_BoneParentNodeRelationship.h"
diff --git a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h
index 05e9d9f02de..6e6c197517f 100644
--- a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h
+++ b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h
@@ -1,19 +1,4 @@
-/**
- * @mainpage KX_SG_NodeRelationships
-
- * @section
- *
- * This file provides common concrete implementations of
- * SG_ParentRelation used by the game engine. These are
- * KX_SlowParentRelation a slow parent relationship.
- * KX_NormalParentRelation a normal parent relationship where
- * orientation and position are inherited from the parent by
- * the child.
- * KX_VertexParentRelation only location information is
- * inherited by the child.
- *
- * interface
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -43,6 +28,10 @@
*
*/
+/** \file KX_SG_BoneParentNodeRelationship.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_SG_BONEPARENTRELATION_H__
#define __KX_SG_BONEPARENTRELATION_H__
diff --git a/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp b/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp
index ccdaac8edb7..f376dd399f2 100644
--- a/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp
+++ b/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_SG_NodeRelationships.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_SG_NodeRelationships.h"
/**
diff --git a/source/gameengine/Ketsji/KX_SG_NodeRelationships.h b/source/gameengine/Ketsji/KX_SG_NodeRelationships.h
index 7bb6f767308..3e18ddf2611 100644
--- a/source/gameengine/Ketsji/KX_SG_NodeRelationships.h
+++ b/source/gameengine/Ketsji/KX_SG_NodeRelationships.h
@@ -1,19 +1,4 @@
-/**
- * @mainpage KX_SG_NodeRelationships
-
- * @section
- *
- * This file provides common concrete implementations of
- * SG_ParentRelation used by the game engine. These are
- * KX_SlowParentRelation a slow parent relationship.
- * KX_NormalParentRelation a normal parent relationship where
- * orientation and position are inherited from the parent by
- * the child.
- * KX_VertexParentRelation only location information is
- * inherited by the child.
- *
- * interface
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -43,6 +28,19 @@
*
*/
+/** \file KX_SG_NodeRelationships.h
+ * \ingroup ketsji
+ * \section KX_SG_NodeRelationships
+ * This file provides common concrete implementations of
+ * SG_ParentRelation used by the game engine. These are
+ * KX_SlowParentRelation a slow parent relationship.
+ * KX_NormalParentRelation a normal parent relationship where
+ * orientation and position are inherited from the parent by
+ * the child.
+ * KX_VertexParentRelation only location information is
+ * inherited by the child.
+ */
+
#ifndef __KX_SG_NODERELATIONS_H__
#define __KX_SG_NODERELATIONS_H__
diff --git a/source/gameengine/Ketsji/KX_ScalarInterpolator.cpp b/source/gameengine/Ketsji/KX_ScalarInterpolator.cpp
index 9fc544feaff..c9ca9d704e1 100644
--- a/source/gameengine/Ketsji/KX_ScalarInterpolator.cpp
+++ b/source/gameengine/Ketsji/KX_ScalarInterpolator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_ScalarInterpolator.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_ScalarInterpolator.h"
#include "KX_IScalarInterpolator.h"
diff --git a/source/gameengine/Ketsji/KX_ScalarInterpolator.h b/source/gameengine/Ketsji/KX_ScalarInterpolator.h
index 5b66ad42bd9..1abc4f4f06f 100644
--- a/source/gameengine/Ketsji/KX_ScalarInterpolator.h
+++ b/source/gameengine/Ketsji/KX_ScalarInterpolator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_ScalarInterpolator.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_SCALARINTERPOLATOR
#define KX_SCALARINTERPOLATOR
diff --git a/source/gameengine/Ketsji/KX_ScalingInterpolator.cpp b/source/gameengine/Ketsji/KX_ScalingInterpolator.cpp
index 3f5ac8ee8a4..a7b5d1415da 100644
--- a/source/gameengine/Ketsji/KX_ScalingInterpolator.cpp
+++ b/source/gameengine/Ketsji/KX_ScalingInterpolator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_ScalingInterpolator.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_ScalingInterpolator.h"
#include "MT_Vector3.h"
#include "KX_IScalarInterpolator.h"
diff --git a/source/gameengine/Ketsji/KX_ScalingInterpolator.h b/source/gameengine/Ketsji/KX_ScalingInterpolator.h
index 87b85a30d1f..72b91c1a421 100644
--- a/source/gameengine/Ketsji/KX_ScalingInterpolator.h
+++ b/source/gameengine/Ketsji/KX_ScalingInterpolator.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_ScalingInterpolator.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_SCALINGINTERPOLATOR
#define KX_SCALINGINTERPOLATOR
diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp
index 87cb46e65a9..0a8c3039ae3 100644
--- a/source/gameengine/Ketsji/KX_Scene.cpp
+++ b/source/gameengine/Ketsji/KX_Scene.cpp
@@ -28,6 +28,11 @@
* Ketsji scene. Holds references to all scene data.
*/
+/** \file gameengine/Ketsji/KX_Scene.cpp
+ * \ingroup ketsji
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif //WIN32
@@ -1857,6 +1862,16 @@ bool KX_Scene::MergeScene(KX_Scene *other)
/* when merging objects sensors are moved across into the new manager, dont need to do this here */
}
+
+ /* grab any timer properties from the other scene */
+ SCA_TimeEventManager *timemgr= GetTimeEventManager();
+ SCA_TimeEventManager *timemgr_other= other->GetTimeEventManager();
+ vector<CValue*> times = timemgr_other->GetTimeValues();
+
+ for(unsigned int i= 0; i < times.size(); i++) {
+ timemgr->AddTimeProperty(times[i]);
+ }
+
}
return true;
}
diff --git a/source/gameengine/Ketsji/KX_Scene.h b/source/gameengine/Ketsji/KX_Scene.h
index 6bef3f95dde..af6a31e786c 100644
--- a/source/gameengine/Ketsji/KX_Scene.h
+++ b/source/gameengine/Ketsji/KX_Scene.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_Scene.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_SCENE_H
#define __KX_SCENE_H
diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp
index f991b843c99..8312a14ebfb 100644
--- a/source/gameengine/Ketsji/KX_SceneActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Set scene/camera stuff
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_SceneActuator.cpp
+ * \ingroup ketsji
+ */
+
+
#include "SCA_IActuator.h"
#include "KX_SceneActuator.h"
#include <iostream>
diff --git a/source/gameengine/Ketsji/KX_SceneActuator.h b/source/gameengine/Ketsji/KX_SceneActuator.h
index b49357b21ca..563255d1560 100644
--- a/source/gameengine/Ketsji/KX_SceneActuator.h
+++ b/source/gameengine/Ketsji/KX_SceneActuator.h
@@ -1,7 +1,3 @@
-
-//
-// Add object to the game world on action of this actuator
-//
// $Id$
//
// ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +26,10 @@
// ***** END GPL LICENSE BLOCK *****
//
+/** \file KX_SceneActuator.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_SCENEACTUATOR
#define __KX_SCENEACTUATOR
diff --git a/source/gameengine/Ketsji/KX_SoundActuator.cpp b/source/gameengine/Ketsji/KX_SoundActuator.cpp
index d5f8aa74880..45ba827a1b8 100644
--- a/source/gameengine/Ketsji/KX_SoundActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SoundActuator.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* KX_SoundActuator.cpp
*
* $Id$
@@ -30,6 +30,11 @@
*
*/
+/** \file gameengine/Ketsji/KX_SoundActuator.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_SoundActuator.h"
#include "AUD_C-API.h"
#include "KX_GameObject.h"
diff --git a/source/gameengine/Ketsji/KX_SoundActuator.h b/source/gameengine/Ketsji/KX_SoundActuator.h
index 7c1108ea8fb..e7257245a80 100644
--- a/source/gameengine/Ketsji/KX_SoundActuator.h
+++ b/source/gameengine/Ketsji/KX_SoundActuator.h
@@ -1,6 +1,4 @@
-/**
- * KX_SoundActuator.h
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_SoundActuator.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_SOUNDACTUATOR
#define __KX_SOUNDACTUATOR
diff --git a/source/gameengine/Ketsji/KX_StateActuator.cpp b/source/gameengine/Ketsji/KX_StateActuator.cpp
index ff4c3985a04..7ebfae2ca25 100644
--- a/source/gameengine/Ketsji/KX_StateActuator.cpp
+++ b/source/gameengine/Ketsji/KX_StateActuator.cpp
@@ -28,6 +28,11 @@
* Actuator to toggle visibility/invisibility of objects
*/
+/** \file gameengine/Ketsji/KX_StateActuator.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_StateActuator.h"
#include "KX_GameObject.h"
diff --git a/source/gameengine/Ketsji/KX_StateActuator.h b/source/gameengine/Ketsji/KX_StateActuator.h
index 3af03f5d1fb..bdaaa0ffbc2 100644
--- a/source/gameengine/Ketsji/KX_StateActuator.h
+++ b/source/gameengine/Ketsji/KX_StateActuator.h
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Actuator to toggle visibility/invisibility of objects
+ */
+
+/** \file KX_StateActuator.h
+ * \ingroup ketsji
+ * \brief Actuator to toggle visibility/invisibility of objects
*/
#ifndef __KX_STATEACTUATOR
diff --git a/source/gameengine/Ketsji/KX_TimeCategoryLogger.cpp b/source/gameengine/Ketsji/KX_TimeCategoryLogger.cpp
index 4f10c72b50b..65cc9c581d8 100644
--- a/source/gameengine/Ketsji/KX_TimeCategoryLogger.cpp
+++ b/source/gameengine/Ketsji/KX_TimeCategoryLogger.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_TimeCategoryLogger.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_TimeCategoryLogger.h"
KX_TimeCategoryLogger::KX_TimeCategoryLogger(unsigned int maxNumMeasurements)
diff --git a/source/gameengine/Ketsji/KX_TimeCategoryLogger.h b/source/gameengine/Ketsji/KX_TimeCategoryLogger.h
index f4eb4d18ab3..95358e99cb7 100644
--- a/source/gameengine/Ketsji/KX_TimeCategoryLogger.h
+++ b/source/gameengine/Ketsji/KX_TimeCategoryLogger.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_TimeCategoryLogger.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_TIME_CATEGORY_LOGGER_H
#define __KX_TIME_CATEGORY_LOGGER_H
diff --git a/source/gameengine/Ketsji/KX_TimeLogger.cpp b/source/gameengine/Ketsji/KX_TimeLogger.cpp
index 5ec09df2791..b904e857ad3 100644
--- a/source/gameengine/Ketsji/KX_TimeLogger.cpp
+++ b/source/gameengine/Ketsji/KX_TimeLogger.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_TimeLogger.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_TimeLogger.h"
KX_TimeLogger::KX_TimeLogger(unsigned int maxNumMeasurements) :
diff --git a/source/gameengine/Ketsji/KX_TimeLogger.h b/source/gameengine/Ketsji/KX_TimeLogger.h
index 9a5c124a462..a43c0bfddc7 100644
--- a/source/gameengine/Ketsji/KX_TimeLogger.h
+++ b/source/gameengine/Ketsji/KX_TimeLogger.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_TimeLogger.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_TIME_LOGGER_H
#define __KX_TIME_LOGGER_H
diff --git a/source/gameengine/Ketsji/KX_TouchEventManager.cpp b/source/gameengine/Ketsji/KX_TouchEventManager.cpp
index 95928ac5889..d57c1b73eec 100644
--- a/source/gameengine/Ketsji/KX_TouchEventManager.cpp
+++ b/source/gameengine/Ketsji/KX_TouchEventManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_TouchEventManager.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_TouchEventManager.h"
#include "SCA_ISensor.h"
#include "KX_TouchSensor.h"
diff --git a/source/gameengine/Ketsji/KX_TouchEventManager.h b/source/gameengine/Ketsji/KX_TouchEventManager.h
index 388195367b9..c8b86e854ae 100644
--- a/source/gameengine/Ketsji/KX_TouchEventManager.h
+++ b/source/gameengine/Ketsji/KX_TouchEventManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_TouchEventManager.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_TOUCHEVENTMANAGER
#define __KX_TOUCHEVENTMANAGER
diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp
index b590624e6c7..6186254c34c 100644
--- a/source/gameengine/Ketsji/KX_TouchSensor.cpp
+++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* Senses touch and collision events
*
* $Id$
@@ -29,6 +29,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_TouchSensor.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_TouchSensor.h"
#include "SCA_EventManager.h"
#include "SCA_LogicManager.h"
diff --git a/source/gameengine/Ketsji/KX_TouchSensor.h b/source/gameengine/Ketsji/KX_TouchSensor.h
index 80e5a0f938e..39011345267 100644
--- a/source/gameengine/Ketsji/KX_TouchSensor.h
+++ b/source/gameengine/Ketsji/KX_TouchSensor.h
@@ -1,6 +1,4 @@
-/**
- * Senses touch and collision events
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file KX_TouchSensor.h
+ * \ingroup ketsji
+ * \brief Senses touch and collision events
+ */
+
#ifndef __KX_TOUCHSENSOR
#define __KX_TOUCHSENSOR
diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp
index cae183ac4a2..5530fa286cf 100644
--- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp
+++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/KX_TrackToActuator.cpp
+ * \ingroup ketsji
+ */
//
// Replace the mesh for this actuator's parent
//
diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.h b/source/gameengine/Ketsji/KX_TrackToActuator.h
index 33b2ecb1aa5..33780bf53e4 100644
--- a/source/gameengine/Ketsji/KX_TrackToActuator.h
+++ b/source/gameengine/Ketsji/KX_TrackToActuator.h
@@ -1,6 +1,3 @@
-//
-// Add object to the game world on action of this actuator
-//
// $Id$
//
// ***** BEGIN GPL LICENSE BLOCK *****
@@ -29,6 +26,10 @@
// ***** END GPL LICENSE BLOCK *****
//
+/** \file KX_TrackToActuator.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_TrackToActuator
#define __KX_TrackToActuator
diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp
index 17368357cc4..1c03df80dc1 100644
--- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp
+++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Ketsji/KX_VehicleWrapper.cpp
+ * \ingroup ketsji
+ */
#include "PyObjectPlus.h"
diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.h b/source/gameengine/Ketsji/KX_VehicleWrapper.h
index 4cde50b0932..f750912c95b 100644
--- a/source/gameengine/Ketsji/KX_VehicleWrapper.h
+++ b/source/gameengine/Ketsji/KX_VehicleWrapper.h
@@ -1,3 +1,8 @@
+
+/** \file KX_VehicleWrapper.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_VEHICLE_WRAPPER
#define KX_VEHICLE_WRAPPER
diff --git a/source/gameengine/Ketsji/KX_VertexProxy.cpp b/source/gameengine/Ketsji/KX_VertexProxy.cpp
index f66d11394fd..5589d35f44a 100644
--- a/source/gameengine/Ketsji/KX_VertexProxy.cpp
+++ b/source/gameengine/Ketsji/KX_VertexProxy.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_VertexProxy.cpp
+ * \ingroup ketsji
+ */
+
+
#ifdef WITH_PYTHON
#include "KX_VertexProxy.h"
diff --git a/source/gameengine/Ketsji/KX_VertexProxy.h b/source/gameengine/Ketsji/KX_VertexProxy.h
index a5f2e5a08e0..e34330ebefe 100644
--- a/source/gameengine/Ketsji/KX_VertexProxy.h
+++ b/source/gameengine/Ketsji/KX_VertexProxy.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_VertexProxy.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_VERTEXPROXY
#define __KX_VERTEXPROXY
diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
index 464dbd14721..6dc9961fe2d 100644
--- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
+++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
@@ -28,6 +28,11 @@
* Actuator to toggle visibility/invisibility of objects
*/
+/** \file gameengine/Ketsji/KX_VisibilityActuator.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_VisibilityActuator.h"
#include "KX_GameObject.h"
diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.h b/source/gameengine/Ketsji/KX_VisibilityActuator.h
index 4969dda1158..9b40aec4506 100644
--- a/source/gameengine/Ketsji/KX_VisibilityActuator.h
+++ b/source/gameengine/Ketsji/KX_VisibilityActuator.h
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Actuator to toggle visibility/invisibility of objects
+ */
+
+/** \file KX_VisibilityActuator.h
+ * \ingroup ketsji
+ * \brief Actuator to toggle visibility/invisibility of objects
*/
#ifndef __KX_VISIBILITYACTUATOR
diff --git a/source/gameengine/Ketsji/KX_WorldInfo.cpp b/source/gameengine/Ketsji/KX_WorldInfo.cpp
index bf059ca543c..fd83e44f793 100644
--- a/source/gameengine/Ketsji/KX_WorldInfo.cpp
+++ b/source/gameengine/Ketsji/KX_WorldInfo.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_WorldInfo.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_WorldInfo.h"
KX_WorldInfo::~KX_WorldInfo()
diff --git a/source/gameengine/Ketsji/KX_WorldInfo.h b/source/gameengine/Ketsji/KX_WorldInfo.h
index fb730c5502f..35e1d50af12 100644
--- a/source/gameengine/Ketsji/KX_WorldInfo.h
+++ b/source/gameengine/Ketsji/KX_WorldInfo.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_WorldInfo.h
+ * \ingroup ketsji
+ */
+
#ifndef __KX_WORLDINFO_H
#define __KX_WORLDINFO_H
diff --git a/source/gameengine/Ketsji/KX_WorldIpoController.cpp b/source/gameengine/Ketsji/KX_WorldIpoController.cpp
index 476b23a5cbf..a6ad7c83b72 100644
--- a/source/gameengine/Ketsji/KX_WorldIpoController.cpp
+++ b/source/gameengine/Ketsji/KX_WorldIpoController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Ketsji/KX_WorldIpoController.cpp
+ * \ingroup ketsji
+ */
+
+
#include "KX_WorldIpoController.h"
#include "KX_ScalarInterpolator.h"
#include "KX_WorldInfo.h"
diff --git a/source/gameengine/Ketsji/KX_WorldIpoController.h b/source/gameengine/Ketsji/KX_WorldIpoController.h
index f6c36198ae7..7771628b5bc 100644
--- a/source/gameengine/Ketsji/KX_WorldIpoController.h
+++ b/source/gameengine/Ketsji/KX_WorldIpoController.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file KX_WorldIpoController.h
+ * \ingroup ketsji
+ */
+
#ifndef KX_WORLDIPOCONTROLLER_H
#define KX_WORLDIPOCONTROLLER_H
@@ -42,7 +47,7 @@ public:
private:
T_InterpolatorList m_interpolators;
- unsigned short m_modify_mist_color : 1;
+ unsigned short m_modify_mist_color : 1;
unsigned short m_modify_mist_start : 1;
unsigned short m_modify_mist_dist : 1;
bool m_modified;
diff --git a/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.cpp b/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.cpp
index 5ac49883e91..288dfc12ffd 100644
--- a/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.cpp
+++ b/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.cpp
@@ -28,6 +28,11 @@
* LoopbackNetworkDeviceInterface derived from NG_NetworkDeviceInterface
*/
+/** \file gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.cpp
+ * \ingroup bgenetlb
+ */
+
+
#include "NG_LoopBackNetworkDeviceInterface.h"
#include "NG_NetworkMessage.h"
diff --git a/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h b/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h
index bb15c3239ee..67d0e741507 100644
--- a/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h
+++ b/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * LoopbackNetworkDeviceInterface derived from NG_NetworkDeviceInterface
+ */
+
+/** \file NG_LoopBackNetworkDeviceInterface.h
+ * \ingroup bgenetlb
+ * \brief LoopbackNetworkDeviceInterface derived from NG_NetworkDeviceInterface
*/
#ifndef NG_LOOPBACKNETWORKDEVICEINTERFACE_H
#define NG_LOOPBACKNETWORKDEVICEINTERFACE_H
diff --git a/source/gameengine/Network/NG_NetworkDeviceInterface.h b/source/gameengine/Network/NG_NetworkDeviceInterface.h
index 5925870272d..6df228680ec 100644
--- a/source/gameengine/Network/NG_NetworkDeviceInterface.h
+++ b/source/gameengine/Network/NG_NetworkDeviceInterface.h
@@ -25,10 +25,14 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * NetworkGameengine_NetworkDeviceInterface
- * Functions like (de)initialize network, get library version
+ */
+
+/** \file NG_NetworkDeviceInterface.h
+ * \ingroup bgenet
+ * \brief Functions like (de)initialize network, get library version
* To be derived by loopback and network libraries
*/
+
#ifndef NG_NETWORKDEVICEINTERFACE_H
#define NG_NETWORKDEVICEINTERFACE_H
diff --git a/source/gameengine/Network/NG_NetworkMessage.cpp b/source/gameengine/Network/NG_NetworkMessage.cpp
index cb9b25c756a..56575f91c41 100644
--- a/source/gameengine/Network/NG_NetworkMessage.cpp
+++ b/source/gameengine/Network/NG_NetworkMessage.cpp
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
* generic Network Message implementation
*/
+
+/** \file gameengine/Network/NG_NetworkMessage.cpp
+ * \ingroup bgenet
+ */
+
#include "NG_NetworkMessage.h"
#include <assert.h>
diff --git a/source/gameengine/Network/NG_NetworkMessage.h b/source/gameengine/Network/NG_NetworkMessage.h
index 0d43e3c2b51..0163e18fde7 100644
--- a/source/gameengine/Network/NG_NetworkMessage.h
+++ b/source/gameengine/Network/NG_NetworkMessage.h
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * NetworkGame_NetworkMessage generic Network Message class
+ */
+
+/** \file NG_NetworkMessage.h
+ * \ingroup bgenet
+ * \brief generic Network Message class
*/
#ifndef NG_NETWORKMESSAGE_H
#define NG_NETWORKMESSAGE_H
diff --git a/source/gameengine/Network/NG_NetworkObject.cpp b/source/gameengine/Network/NG_NetworkObject.cpp
index 36aef6e44c8..17b40d59e00 100644
--- a/source/gameengine/Network/NG_NetworkObject.cpp
+++ b/source/gameengine/Network/NG_NetworkObject.cpp
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
* NetworkGame_NetworkObject generic Network Object implementation
*/
+
+/** \file gameengine/Network/NG_NetworkObject.cpp
+ * \ingroup bgenet
+ */
+
#include "NG_NetworkObject.h"
NG_NetworkObject::NG_NetworkObject()
diff --git a/source/gameengine/Network/NG_NetworkObject.h b/source/gameengine/Network/NG_NetworkObject.h
index 7bdd25305a0..0cbb3c83779 100644
--- a/source/gameengine/Network/NG_NetworkObject.h
+++ b/source/gameengine/Network/NG_NetworkObject.h
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * NetworkGame_NetworkObject generic Network Object class
+ */
+
+/** \file NG_NetworkObject.h
+ * \ingroup bgenet
+ * \brief generic Network Object class
*/
#ifndef NG_NETWORKOBJECT_H
#define NG_NETWORKOBJECT_H
diff --git a/source/gameengine/Network/NG_NetworkScene.cpp b/source/gameengine/Network/NG_NetworkScene.cpp
index 976ce0d367e..b4982b332f0 100644
--- a/source/gameengine/Network/NG_NetworkScene.cpp
+++ b/source/gameengine/Network/NG_NetworkScene.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
* NetworkSceneManagement generic implementation
*/
+
+/** \file gameengine/Network/NG_NetworkScene.cpp
+ * \ingroup bgenet
+ */
+
#include <stdio.h>
#include <MT_assert.h>
#include <algorithm>
diff --git a/source/gameengine/Network/NG_NetworkScene.h b/source/gameengine/Network/NG_NetworkScene.h
index 60bb0b09097..d390eabc465 100644
--- a/source/gameengine/Network/NG_NetworkScene.h
+++ b/source/gameengine/Network/NG_NetworkScene.h
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * NetworkSceneManagement generic class
+ */
+
+/** \file NG_NetworkScene.h
+ * \ingroup bgenet
+ * \brief NetworkSceneManagement generic class
*/
#ifndef __NG_NETWORKSCENE_H
#define __NG_NETWORKSCENE_H
diff --git a/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.cpp b/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.cpp
deleted file mode 100644
index 301a056f25c..00000000000
--- a/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * $Id$
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- * TerraplayNetworkDeviceInterface derived from NG_NetworkDeviceInterface
- */
-
-#include "NG_TerraplayNetworkDeviceInterface.h"
-#include "NG_NetworkMessage.h"
-
-//---- relocate these
-void NG_TerraplayNetworkDeviceInterface::interface_error(char *str, GASResult error) {
- GASRString err_str = GAS->ErrorTranslate(error);
- if (err_str.result == GASOK)
- printf("%s: %s\n",str,err_str.ptr);
- else
- printf("%s: UNKNOWN (Error code %d)", error);
-}
-//---- END relocate these
-
-NG_TerraplayNetworkDeviceInterface::NG_TerraplayNetworkDeviceInterface()
-{
- group_id = GASCLIENTIDNULL;
- group_id_request_valid = false;
- this->Offline();
-
- if ((GAS = new GASInterface()) == NULL) {
- // terror
- printf("ERROR GAS Common Network Interface NOT created\n");
- // do something useful
- } else {
- printf("GAS Common Network Interface created\n");
- }
-}
-
-NG_TerraplayNetworkDeviceInterface::~NG_TerraplayNetworkDeviceInterface()
-{
- if (GAS != NULL) {
- delete GAS;
- printf("GAS Common Network Interface deleted\n");
- }
-}
-
-bool NG_TerraplayNetworkDeviceInterface::Connect(char *GAS_address,
- unsigned int GAS_port, char *GAS_password, unsigned int localport,
- unsigned int timeout)
-{
- GASResult result;
- printf("Establishing connection to GAS...\n");
- result = GAS->ConnectionRequest(GAS_address, GAS_port,
- GAS_password,localport, timeout);
- if (result == GASOK) {
- this->Online();
- GASRClientId client_id = GAS->Connected();
- if (client_id.result != GASOK) {
- printf("... connected, but no client ID\n");
- return false;
- } else {
- printf("Connected with client ID %d\n",
- client_id.clientid);
- return true;
- }
- } else {
- interface_error("Connection", result);
- return false;
- }
-}
-
-bool NG_TerraplayNetworkDeviceInterface::Disconnect(void)
-{
- int i = 0;
- printf("Disconnecting...\n");
- if (! this->IsOnline()) {
- printf("ehh... /me was not connected\n");
- return false;
- }
-
- GASRRequestId req = GAS->ConnectionClose();
- if (req.result != GASWAITING) {
- interface_error("ConnectionClose",req.result);
- this->~NG_TerraplayNetworkDeviceInterface();
- }
- this->Offline();
-// dit is erg fout :( ik wil helemaal geen ~NG_ hier
-
- while (true) {
- GASRMessage gas_message;
- GASResult result = GAS->GasActivity(GASBLOCK, 100);
- if (++i>5000) {
- printf("\nGiving up on waiting for connection close\n");
- this->~NG_TerraplayNetworkDeviceInterface();
- }
- switch (result) {
- case GASCONNECTIONOK:
- break;
- case GASGASMESSAGE:
- gas_message = GAS->GasMessageGetNext();
- if (gas_message.type == GASRCONNECTIONCLOSE) {
- if (gas_message.result == GASOK ||
- gas_message.result == GASALREADYDONE) {
- return true;
- } else {
- interface_error("GasMessageGetNext",
- gas_message.result);
- return false;
- }
- }
- // no break ...
- default:
- interface_error("GasActivity",result);
- }
- }
- return true;
-}
-
-STR_String NG_TerraplayNetworkDeviceInterface::GetNetworkVersion()
-{
- GASRString version = GAS->Version();
- if (version.result != GASOK) {
- interface_error("GetNetworkVersion", version.result);
- return NULL;
- } else {
- return version.ptr;
- }
-}
-
-int NG_TerraplayNetworkDeviceInterface::mytest() {
- return (3);
-}
-
-void NG_TerraplayNetworkDeviceInterface::SendNetworkMessage(NG_NetworkMessage* nwmsg)
-{
- GASPayload payload;
- GASResult result;
- STR_String mystring;
-
- if (group_id == GASCLIENTIDNULL) {
- printf("Oops, no group to send to yet\n");
- return;
- }
-
- mystring = nwmsg->GetMessageText().ReadPtr();
- payload.ptr = (void *) mystring.Ptr();
- payload.size = mystring.Length() + 1;
-
- result = GAS->ClientMessageSend(group_id, payload, GASBESTEFFORT);
-
- switch (result) {
- case GASOK:
- break;
- default:
- interface_error("ClientMessageSend",result);
- }
- // NOTE. You shall NOT free the payload with PayloadFree().
- // This is your own payload, allocated and freed by yourself
- // anyway you want.
-}
-
-vector <NG_NetworkMessage*> NG_TerraplayNetworkDeviceInterface::RetrieveNetworkMessages()
-{
-
- vector <NG_NetworkMessage*> messages;
- //todo: spend your expensive time here!
-
- return messages;
-}
diff --git a/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.h b/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.h
deleted file mode 100644
index cc5f50e9e5e..00000000000
--- a/source/gameengine/Network/TerraplayNetwork/NG_TerraplayNetworkDeviceInterface.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * $Id$
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- * TerraplayNetworkDeviceInterface derived from NG_NetworkDeviceInterface
- */
-#ifndef NG_TERRAPLAYNETWORKDEVICEINTERFACE_H
-#define NG_TERRAPLAYNETWORKDEVICEINTERFACE_H
-
-#include <deque>
-#include "GASInterface.h"
-#include "NG_NetworkDeviceInterface.h"
-
-class NG_TerraplayNetworkDeviceInterface : public NG_NetworkDeviceInterface
-{
- std::deque<NG_NetworkMessage*> m_messages;
-
- // Terraplay GAS stuff
- GASInterface *GAS;
- GASClientId group_id;
- GASRequestId group_id_request;
- int group_id_request_valid;
-
- void interface_error(char *str, GASResult error);
-public:
- NG_TerraplayNetworkDeviceInterface();
- ~NG_TerraplayNetworkDeviceInterface();
-
- bool Connect(char *GAS_address, unsigned int GAS_port,
- char *GAS_password, unsigned int localport,
- unsigned int timeout);
- bool Disconnect(void);
-
- void SendNetworkMessage(NG_NetworkMessage* nwmsg);
- vector<NG_NetworkMessage*> RetrieveNetworkMessages(void);
-
- int mytest(void);
-};
-
-#endif //NG_TERRAPLAYNETWORKDEVICEINTERFACE_H
-
diff --git a/source/gameengine/Physics/Bullet/CcdGraphicController.cpp b/source/gameengine/Physics/Bullet/CcdGraphicController.cpp
index 73ac789edf7..a5577d5e7d2 100644
--- a/source/gameengine/Physics/Bullet/CcdGraphicController.cpp
+++ b/source/gameengine/Physics/Bullet/CcdGraphicController.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Physics/Bullet/CcdGraphicController.cpp
+ * \ingroup physbullet
+ */
/*
Bullet Continuous Collision Detection and Physics Library
Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/
diff --git a/source/gameengine/Physics/Bullet/CcdGraphicController.h b/source/gameengine/Physics/Bullet/CcdGraphicController.h
index 97893420d79..d0cb899cb74 100644
--- a/source/gameengine/Physics/Bullet/CcdGraphicController.h
+++ b/source/gameengine/Physics/Bullet/CcdGraphicController.h
@@ -13,6 +13,10 @@ subject to the following restrictions:
3. This notice may not be removed or altered from any source distribution.
*/
+/** \file CcdGraphicController.h
+ * \ingroup physbullet
+ */
+
#ifndef BULLET2_GRAPHICCONTROLLER_H
#define BULLET2_GRAPHICCONTROLLER_H
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
index 8d3c1565d3a..0c5cbb22fbc 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Physics/Bullet/CcdPhysicsController.cpp
+ * \ingroup physbullet
+ */
/*
Bullet Continuous Collision Detection and Physics Library
Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.h b/source/gameengine/Physics/Bullet/CcdPhysicsController.h
index 3bbe17459c9..dc7a88e8db1 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsController.h
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.h
@@ -13,6 +13,10 @@ subject to the following restrictions:
3. This notice may not be removed or altered from any source distribution.
*/
+/** \file CcdPhysicsController.h
+ * \ingroup physbullet
+ */
+
#ifndef BULLET2_PHYSICSCONTROLLER_H
#define BULLET2_PHYSICSCONTROLLER_H
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
index eb525af7dc7..93f1d0962d7 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
+ * \ingroup physbullet
+ */
/*
Bullet Continuous Collision Detection and Physics Library
Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h
index c6e759743a9..4b97dc95179 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h
@@ -13,6 +13,11 @@ subject to the following restrictions:
3. This notice may not be removed or altered from any source distribution.
*/
+/** \file CcdPhysicsEnvironment.h
+ * \ingroup physbullet
+ * See also \ref bulletdoc
+ */
+
#ifndef CCDPHYSICSENVIRONMENT
#define CCDPHYSICSENVIRONMENT
@@ -47,10 +52,11 @@ class btIDebugDraw;
class PHY_IVehicle;
class CcdOverlapFilterCallBack;
-/// CcdPhysicsEnvironment is an experimental mainloop for physics simulation using optional continuous collision detection.
-/// Physics Environment takes care of stepping the simulation and is a container for physics entities.
-/// It stores rigidbodies,constraints, materials etc.
-/// A derived class may be able to 'construct' entities by loading and/or converting
+/** CcdPhysicsEnvironment is an experimental mainloop for physics simulation using optional continuous collision detection.
+ * Physics Environment takes care of stepping the simulation and is a container for physics entities.
+ * It stores rigidbodies,constraints, materials etc.
+ * A derived class may be able to 'construct' entities by loading and/or converting
+ */
class CcdPhysicsEnvironment : public PHY_IPhysicsEnvironment
{
friend class CcdOverlapFilterCallBack;
diff --git a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp
index 86223a0ea60..15c52410dc6 100644
--- a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp
+ * \ingroup physdummy
+ */
+
+
#include <stddef.h>
#include "DummyPhysicsEnvironment.h"
diff --git a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
index 0ad6649f2e5..b3deb181a44 100644
--- a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
+++ b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file DummyPhysicsEnvironment.h
+ * \ingroup physdummy
+ */
+
#ifndef _DUMMYPHYSICSENVIRONMENT
#define _DUMMYPHYSICSENVIRONMENT
diff --git a/source/gameengine/Physics/common/PHY_DynamicTypes.h b/source/gameengine/Physics/common/PHY_DynamicTypes.h
index cc0f06a58cf..a1761131a8e 100644
--- a/source/gameengine/Physics/common/PHY_DynamicTypes.h
+++ b/source/gameengine/Physics/common/PHY_DynamicTypes.h
@@ -13,6 +13,9 @@ subject to the following restrictions:
3. This notice may not be removed or altered from any source distribution.
*/
+/** \file PHY_DynamicTypes.h
+ * \ingroup phys
+ */
#ifndef __PHY_DYNAMIC_TYPES
#define __PHY_DYNAMIC_TYPES
diff --git a/source/gameengine/Physics/common/PHY_IController.cpp b/source/gameengine/Physics/common/PHY_IController.cpp
index 577e25b4336..0d484ab4a2e 100644
--- a/source/gameengine/Physics/common/PHY_IController.cpp
+++ b/source/gameengine/Physics/common/PHY_IController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Physics/common/PHY_IController.cpp
+ * \ingroup phys
+ */
+
#include "PHY_IController.h"
PHY_IController::~PHY_IController()
diff --git a/source/gameengine/Physics/common/PHY_IController.h b/source/gameengine/Physics/common/PHY_IController.h
index de2e53c3613..d3bb9fbf5bc 100644
--- a/source/gameengine/Physics/common/PHY_IController.h
+++ b/source/gameengine/Physics/common/PHY_IController.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file PHY_IController.h
+ * \ingroup phys
+ */
+
#ifndef PHY_ICONTROLLER_H
#define PHY_ICONTROLLER_H
diff --git a/source/gameengine/Physics/common/PHY_IGraphicController.cpp b/source/gameengine/Physics/common/PHY_IGraphicController.cpp
index dc4b31d9a76..5f177aec155 100644
--- a/source/gameengine/Physics/common/PHY_IGraphicController.cpp
+++ b/source/gameengine/Physics/common/PHY_IGraphicController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Physics/common/PHY_IGraphicController.cpp
+ * \ingroup phys
+ */
+
#include "PHY_IGraphicController.h"
PHY_IGraphicController::~PHY_IGraphicController()
diff --git a/source/gameengine/Physics/common/PHY_IGraphicController.h b/source/gameengine/Physics/common/PHY_IGraphicController.h
index aeccdb573b4..00bb25be3e6 100644
--- a/source/gameengine/Physics/common/PHY_IGraphicController.h
+++ b/source/gameengine/Physics/common/PHY_IGraphicController.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file PHY_IGraphicController.h
+ * \ingroup phys
+ */
+
#ifndef PHY_IGRAPHICCONTROLLER_H
#define PHY_IGRAPHICCONTROLLER_H
diff --git a/source/gameengine/Physics/common/PHY_IMotionState.cpp b/source/gameengine/Physics/common/PHY_IMotionState.cpp
index 78505231895..39f3032f478 100644
--- a/source/gameengine/Physics/common/PHY_IMotionState.cpp
+++ b/source/gameengine/Physics/common/PHY_IMotionState.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Physics/common/PHY_IMotionState.cpp
+ * \ingroup phys
+ */
+
#include "PHY_IMotionState.h"
PHY_IMotionState::~PHY_IMotionState()
diff --git a/source/gameengine/Physics/common/PHY_IMotionState.h b/source/gameengine/Physics/common/PHY_IMotionState.h
index a644bb319ae..00b4f105348 100644
--- a/source/gameengine/Physics/common/PHY_IMotionState.h
+++ b/source/gameengine/Physics/common/PHY_IMotionState.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file PHY_IMotionState.h
+ * \ingroup phys
+ */
+
#ifndef PHY__MOTIONSTATE_H
#define PHY__MOTIONSTATE_H
diff --git a/source/gameengine/Physics/common/PHY_IPhysicsController.cpp b/source/gameengine/Physics/common/PHY_IPhysicsController.cpp
index 00c0bbe6477..49c830c6920 100644
--- a/source/gameengine/Physics/common/PHY_IPhysicsController.cpp
+++ b/source/gameengine/Physics/common/PHY_IPhysicsController.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Physics/common/PHY_IPhysicsController.cpp
+ * \ingroup phys
+ */
+
#include "PHY_IPhysicsController.h"
PHY_IPhysicsController::~PHY_IPhysicsController()
diff --git a/source/gameengine/Physics/common/PHY_IPhysicsController.h b/source/gameengine/Physics/common/PHY_IPhysicsController.h
index 82baa8c47e1..eaf756d887f 100644
--- a/source/gameengine/Physics/common/PHY_IPhysicsController.h
+++ b/source/gameengine/Physics/common/PHY_IPhysicsController.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file PHY_IPhysicsController.h
+ * \ingroup phys
+ */
+
#ifndef PHY_IPHYSICSCONTROLLER_H
#define PHY_IPHYSICSCONTROLLER_H
diff --git a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.cpp b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.cpp
index f56dc5c0aa7..8ac2a06fb09 100644
--- a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Physics/common/PHY_IPhysicsEnvironment.cpp
+ * \ingroup phys
+ */
+
+
#include "PHY_IPhysicsEnvironment.h"
/**
diff --git a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
index abce2769f2a..e2a9b5e99e4 100644
--- a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
+++ b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file PHY_IPhysicsEnvironment.h
+ * \ingroup phys
+ */
+
#ifndef _IPHYSICSENVIRONMENT
#define _IPHYSICSENVIRONMENT
diff --git a/source/gameengine/Physics/common/PHY_IVehicle.cpp b/source/gameengine/Physics/common/PHY_IVehicle.cpp
index 3879e83396f..a60bb3e596d 100644
--- a/source/gameengine/Physics/common/PHY_IVehicle.cpp
+++ b/source/gameengine/Physics/common/PHY_IVehicle.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Physics/common/PHY_IVehicle.cpp
+ * \ingroup phys
+ */
#include "PHY_IVehicle.h"
diff --git a/source/gameengine/Physics/common/PHY_IVehicle.h b/source/gameengine/Physics/common/PHY_IVehicle.h
index 7c00b5d0bef..da9daa29977 100644
--- a/source/gameengine/Physics/common/PHY_IVehicle.h
+++ b/source/gameengine/Physics/common/PHY_IVehicle.h
@@ -1,3 +1,8 @@
+
+/** \file PHY_IVehicle.h
+ * \ingroup phys
+ */
+
#ifndef PHY_IVEHICLE_H
#define PHY_IVEHICLE_H
diff --git a/source/gameengine/Physics/common/PHY_Pro.h b/source/gameengine/Physics/common/PHY_Pro.h
index d51992da372..4ee8d3a4293 100644
--- a/source/gameengine/Physics/common/PHY_Pro.h
+++ b/source/gameengine/Physics/common/PHY_Pro.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file PHY_Pro.h
+ * \ingroup phys
+ */
+
#ifndef PHY_PROPSH
#define PHY_PROPSH
diff --git a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
index 93d82702e90..ed18ff0329e 100644
--- a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -27,6 +27,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Rasterizer/RAS_2DFilterManager.cpp
+ * \ingroup bgerast
+ */
+
#define STRINGIFY(A) #A
diff --git a/source/gameengine/Rasterizer/RAS_2DFilterManager.h b/source/gameengine/Rasterizer/RAS_2DFilterManager.h
index 9671f914fcd..a18df8b4d64 100644
--- a/source/gameengine/Rasterizer/RAS_2DFilterManager.h
+++ b/source/gameengine/Rasterizer/RAS_2DFilterManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_2DFilterManager.h
+ * \ingroup bgerast
+ */
+
#ifndef __RAS_I2DFILTER
#define __RAS_I2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_BucketManager.cpp b/source/gameengine/Rasterizer/RAS_BucketManager.cpp
index 42cdb9659e6..8c9f5e9786b 100644
--- a/source/gameengine/Rasterizer/RAS_BucketManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_BucketManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Rasterizer/RAS_BucketManager.cpp
+ * \ingroup bgerast
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
// don't show these anoying STL warnings
#pragma warning (disable:4786)
diff --git a/source/gameengine/Rasterizer/RAS_BucketManager.h b/source/gameengine/Rasterizer/RAS_BucketManager.h
index 487df50802c..297782bd4fe 100644
--- a/source/gameengine/Rasterizer/RAS_BucketManager.h
+++ b/source/gameengine/Rasterizer/RAS_BucketManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,7 +26,10 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
-// this will be put in a class later on
+
+/** \file RAS_BucketManager.h
+ * \ingroup bgerast
+ */
#ifndef __RAS_BUCKETMANAGER
#define __RAS_BUCKETMANAGER
diff --git a/source/gameengine/Rasterizer/RAS_CameraData.h b/source/gameengine/Rasterizer/RAS_CameraData.h
index 01f8d491a35..e6254f72511 100644
--- a/source/gameengine/Rasterizer/RAS_CameraData.h
+++ b/source/gameengine/Rasterizer/RAS_CameraData.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_CameraData.h
+ * \ingroup bgerast
+ */
+
#ifndef __RAS_CAMERADATA_H
#define __RAS_CAMERADATA_H
diff --git a/source/gameengine/Rasterizer/RAS_Deformer.h b/source/gameengine/Rasterizer/RAS_Deformer.h
index 37543092e68..8678830f6a2 100644
--- a/source/gameengine/Rasterizer/RAS_Deformer.h
+++ b/source/gameengine/Rasterizer/RAS_Deformer.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_Deformer.h
+ * \ingroup bgerast
+ */
+
#ifndef RAS_DEFORMER
#define RAS_DEFORMER
diff --git a/source/gameengine/Rasterizer/RAS_FramingManager.cpp b/source/gameengine/Rasterizer/RAS_FramingManager.cpp
index 61734e89236..edacd1dd0f1 100644
--- a/source/gameengine/Rasterizer/RAS_FramingManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_FramingManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Rasterizer/RAS_FramingManager.cpp
+ * \ingroup bgerast
+ */
+
+
#include "RAS_FramingManager.h"
#include "RAS_Rect.h"
diff --git a/source/gameengine/Rasterizer/RAS_FramingManager.h b/source/gameengine/Rasterizer/RAS_FramingManager.h
index aedac230cbe..c37d92dac17 100644
--- a/source/gameengine/Rasterizer/RAS_FramingManager.h
+++ b/source/gameengine/Rasterizer/RAS_FramingManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_FramingManager.h
+ * \ingroup bgerast
+ */
+
#ifndef RAS_FRAMINGMANAGER_H
#define RAS_FRAMINGMANAGER_H
diff --git a/source/gameengine/Rasterizer/RAS_ICanvas.h b/source/gameengine/Rasterizer/RAS_ICanvas.h
index 826fe732b94..41374a476c6 100644
--- a/source/gameengine/Rasterizer/RAS_ICanvas.h
+++ b/source/gameengine/Rasterizer/RAS_ICanvas.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,20 +26,23 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
-#ifndef __RAS_ICANVAS
-#define __RAS_ICANVAS
-/**
- * 2D rendering device context. The connection from 3d rendercontext to 2d surface.
+/** \file RAS_ICanvas.h
+ * \ingroup bgerast
*/
+#ifndef __RAS_ICANVAS
+#define __RAS_ICANVAS
+
#ifdef WITH_CXX_GUARDEDALLOC
#include "MEM_guardedalloc.h"
#endif
class RAS_Rect;
-
+/**
+ * 2D rendering device context. The connection from 3d rendercontext to 2d surface.
+ */
class RAS_ICanvas
{
public:
diff --git a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
index 00f1f5f2848..e8c0a73813e 100644
--- a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
+++ b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
+ * \ingroup bgerast
+ */
+
+
#include "RAS_IPolygonMaterial.h"
#include "RAS_IRasterizer.h"
diff --git a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
index 59554e31c36..b0e7daf81d7 100644
--- a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
+++ b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,15 +26,16 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_IPolygonMaterial.h
+ * \ingroup bgerast
+ */
+
#ifndef __RAS_IPOLYGONMATERIAL
#define __RAS_IPOLYGONMATERIAL
#include "STR_HashedString.h"
-/**
- * Polygon Material on which the material buckets are sorted
- *
- */
#include "MT_Vector3.h"
#include "STR_HashedString.h"
@@ -65,7 +66,8 @@ enum MaterialProps
};
/**
- * Material properties.
+ * Polygon Material on which the material buckets are sorted
+ *
*/
class RAS_IPolyMaterial
{
diff --git a/source/gameengine/Rasterizer/RAS_IRasterizer.h b/source/gameengine/Rasterizer/RAS_IRasterizer.h
index d72e910cd2c..f76799953a1 100644
--- a/source/gameengine/Rasterizer/RAS_IRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_IRasterizer.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_IRasterizer.h
+ * \ingroup bgerast
+ */
+
#ifndef __RAS_IRASTERIZER
#define __RAS_IRASTERIZER
diff --git a/source/gameengine/Rasterizer/RAS_IRenderTools.cpp b/source/gameengine/Rasterizer/RAS_IRenderTools.cpp
index f33f5ae058d..6e3ea16f25c 100644
--- a/source/gameengine/Rasterizer/RAS_IRenderTools.cpp
+++ b/source/gameengine/Rasterizer/RAS_IRenderTools.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Rasterizer/RAS_IRenderTools.cpp
+ * \ingroup bgerast
+ */
+
+
#include "RAS_IRenderTools.h"
void RAS_IRenderTools::SetClientObject(RAS_IRasterizer* rasty, void *obj)
diff --git a/source/gameengine/Rasterizer/RAS_IRenderTools.h b/source/gameengine/Rasterizer/RAS_IRenderTools.h
index dab28de27f4..ce20bbd98cd 100644
--- a/source/gameengine/Rasterizer/RAS_IRenderTools.h
+++ b/source/gameengine/Rasterizer/RAS_IRenderTools.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_IRenderTools.h
+ * \ingroup bgerast
+ */
+
#ifndef __RAS_IRENDERTOOLS
#define __RAS_IRENDERTOOLS
diff --git a/source/gameengine/Rasterizer/RAS_LightObject.h b/source/gameengine/Rasterizer/RAS_LightObject.h
index 54bc5730564..ef6cfa06635 100644
--- a/source/gameengine/Rasterizer/RAS_LightObject.h
+++ b/source/gameengine/Rasterizer/RAS_LightObject.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_LightObject.h
+ * \ingroup bgerast
+ */
+
#ifndef __RAS_LIGHTOBJECT_H
#define __RAS_LIGHTOBJECT_H
diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
index ef9bf4e22b7..7647f7d3f27 100644
--- a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
+++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Rasterizer/RAS_MaterialBucket.cpp
+ * \ingroup bgerast
+ */
+
+
#include "RAS_MaterialBucket.h"
#if defined(WIN32) && !defined(FREE_WINDOWS)
diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.h b/source/gameengine/Rasterizer/RAS_MaterialBucket.h
index c9ccac8e8a7..c46a36768ee 100644
--- a/source/gameengine/Rasterizer/RAS_MaterialBucket.h
+++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_MaterialBucket.h
+ * \ingroup bgerast
+ */
+
#ifndef __RAS_MATERIALBUCKET
#define __RAS_MATERIALBUCKET
diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.cpp b/source/gameengine/Rasterizer/RAS_MeshObject.cpp
index bd85e6e4504..6ddd31765d5 100644
--- a/source/gameengine/Rasterizer/RAS_MeshObject.cpp
+++ b/source/gameengine/Rasterizer/RAS_MeshObject.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Rasterizer/RAS_MeshObject.cpp
+ * \ingroup bgerast
+ */
+
#include "MEM_guardedalloc.h"
#include "DNA_object_types.h"
diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.h b/source/gameengine/Rasterizer/RAS_MeshObject.h
index 11499b4fbcb..0b35b212e1d 100644
--- a/source/gameengine/Rasterizer/RAS_MeshObject.h
+++ b/source/gameengine/Rasterizer/RAS_MeshObject.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_MeshObject.h
+ * \ingroup bgerast
+ */
+
#ifndef __RAS_MESHOBJECT
#define __RAS_MESHOBJECT
diff --git a/source/gameengine/Rasterizer/RAS_ObjectColor.h b/source/gameengine/Rasterizer/RAS_ObjectColor.h
index e4bca39ff3a..9a334385b17 100644
--- a/source/gameengine/Rasterizer/RAS_ObjectColor.h
+++ b/source/gameengine/Rasterizer/RAS_ObjectColor.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_ObjectColor.h
+ * \ingroup bgerast
+ */
+
#ifndef __RAS_OBJECTCOLOR_H
#define __RAS_OBJECTCOLOR_H
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Blur2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Blur2DFilter.h
index ff92a912ec1..a277d9835d8 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Blur2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Blur2DFilter.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_Blur2DFilter.h
+ * \ingroup bgerastoglfilters
+ */
+
#ifndef __RAS_BLUR2DFILTER
#define __RAS_BLUR2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Dilation2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Dilation2DFilter.h
index 87335761729..6aeff254f77 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Dilation2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Dilation2DFilter.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_Dilation2DFilter.h
+ * \ingroup bgerastoglfilters
+ */
+
#ifndef __RAS_DILATION2DFILTER
#define __RAS_DILATION2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Erosion2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Erosion2DFilter.h
index 476f5820158..1e9dccaec87 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Erosion2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Erosion2DFilter.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_Erosion2DFilter.h
+ * \ingroup bgerastoglfilters
+ */
+
#ifndef __RAS_EROSION2DFILTER
#define __RAS_EROSION2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_GrayScale2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_GrayScale2DFilter.h
index 914151944a5..422d6dfa1b3 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_GrayScale2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_GrayScale2DFilter.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_GrayScale2DFilter.h
+ * \ingroup bgerastoglfilters
+ */
+
#ifndef __RAS_GRAYSCALE2DFILTER
#define __RAS_GRAYSCALE2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Invert2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Invert2DFilter.h
index afab58d4048..475f3506c2c 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Invert2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Invert2DFilter.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_Invert2DFilter.h
+ * \ingroup bgerastoglfilters
+ */
+
#ifndef __RAS_INVERT2DFILTER
#define __RAS_INVERT2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Laplacian2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Laplacian2DFilter.h
index 51a835706bf..c7cfa83a11f 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Laplacian2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Laplacian2DFilter.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_Laplacian2DFilter.h
+ * \ingroup bgerastoglfilters
+ */
+
#ifndef __RAS_LAPLACION2DFILTER
#define __RAS_LAPLACION2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Prewitt2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Prewitt2DFilter.h
index 62842d5f0a8..ada53cd751d 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Prewitt2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Prewitt2DFilter.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_Prewitt2DFilter.h
+ * \ingroup bgerastoglfilters
+ */
+
#ifndef __RAS_PREWITT2DFILTER
#define __RAS_PREWITT2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sepia2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sepia2DFilter.h
index 296b54242bf..5c1c18c30c1 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sepia2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sepia2DFilter.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_Sepia2DFilter.h
+ * \ingroup bgerastoglfilters
+ */
+
#ifndef __RAS_SEPIA2DFILTER
#define __RAS_SEPIA2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sharpen2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sharpen2DFilter.h
index 6b9cc74f424..0d68bc09c70 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sharpen2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sharpen2DFilter.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_Sharpen2DFilter.h
+ * \ingroup bgerastoglfilters
+ */
+
#ifndef __RAS_SHARPEN2DFILTER
#define __RAS_SHARPEN2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sobel2DFilter.h b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sobel2DFilter.h
index f8efe469bfc..0f80f0f22b4 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sobel2DFilter.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_Sobel2DFilter.h
@@ -1,4 +1,4 @@
-/**
+/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_Sobel2DFilter.h
+ * \ingroup bgerastoglfilters
+ */
+
#ifndef __RAS_SOBEL2DFILTER
#define __RAS_SOBEL2DFILTER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp
index e29cd185be3..5e032303bdc 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.cpp
+ * \ingroup bgerastogl
+ */
+
+
#include <iostream>
#include "RAS_GLExtensionManager.h"
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h
index 2f5d90d4bb5..5c3573bccec 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_GLExtensionManager.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,12 +26,16 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_GLExtensionManager.h
+ * \ingroup bgerastogl
+ */
+
#ifndef __RAS_GLEXTENSIONMANAGER_H__
#define __RAS_GLEXTENSIONMANAGER_H__
#include "GL/glew.h"
-/* Note: this used to have a lot more code, but now extension handling
+/** Note: this used to have a lot more code, but now extension handling
* is done by GLEW, so it does mostly debug stuff */
namespace bgl
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp
index d793a2faf7b..e5ca40c1354 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp
+ * \ingroup bgerastogl
+ */
//
#include <iostream>
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h
index 28c56b92c3c..0b36bbf3876 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h
@@ -1,3 +1,8 @@
+
+/** \file RAS_ListRasterizer.h
+ * \ingroup bgerastogl
+ */
+
#ifndef __RAS_LISTRASTERIZER_H__
#define __RAS_LISTRASTERIZER_H__
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
index 135b9e6f4be..597cec17c61 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
+ * \ingroup bgerastogl
+ */
+
#include <math.h>
#include <stdlib.h>
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
index 387bb2cfd73..54fab906049 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_OpenGLRasterizer.h
+ * \ingroup bgerastogl
+ */
+
#ifndef __RAS_OPENGLRASTERIZER
#define __RAS_OPENGLRASTERIZER
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp
index 622ba852934..3ffbf9bc9d1 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -25,6 +25,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp
+ * \ingroup bgerastogl
+ */
+
#include "RAS_VAOpenGLRasterizer.h"
#include <stdlib.h>
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h
index 96f6344b403..388d6c4da29 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_VAOpenGLRasterizer.h
+ * \ingroup bgerastogl
+ */
+
#ifndef __KX_VERTEXARRAYOPENGLRASTERIZER
#define __KX_VERTEXARRAYOPENGLRASTERIZER
diff --git a/source/gameengine/Rasterizer/RAS_Polygon.cpp b/source/gameengine/Rasterizer/RAS_Polygon.cpp
index ab31bb59c36..cc5b4c3b0dc 100644
--- a/source/gameengine/Rasterizer/RAS_Polygon.cpp
+++ b/source/gameengine/Rasterizer/RAS_Polygon.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Rasterizer/RAS_Polygon.cpp
+ * \ingroup bgerast
+ */
+
+
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable:4786)
#endif
diff --git a/source/gameengine/Rasterizer/RAS_Polygon.h b/source/gameengine/Rasterizer/RAS_Polygon.h
index 8dc9813f5b9..49e99f6bd2f 100644
--- a/source/gameengine/Rasterizer/RAS_Polygon.h
+++ b/source/gameengine/Rasterizer/RAS_Polygon.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_Polygon.h
+ * \ingroup bgerast
+ */
+
#ifndef __RAS_POLYGON
#define __RAS_POLYGON
diff --git a/source/gameengine/Rasterizer/RAS_Rect.h b/source/gameengine/Rasterizer/RAS_Rect.h
index 7a1d21b8905..bc4f069b883 100644
--- a/source/gameengine/Rasterizer/RAS_Rect.h
+++ b/source/gameengine/Rasterizer/RAS_Rect.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file RAS_Rect.h
+ * \ingroup bgerast
+ */
+
#ifndef _RAS_RECT
#define _RAS_RECT
@@ -35,11 +39,10 @@
#endif
/**
- * @section interface class.
+ * \section interface class.
* RAS_Rect just encodes a simple rectangle.
- * Should be part of a generic library
+ * \note Should be part of a generic library
*/
-
class RAS_Rect
{
public: // todo: make a decent class, and make private
diff --git a/source/gameengine/Rasterizer/RAS_TexMatrix.h b/source/gameengine/Rasterizer/RAS_TexMatrix.h
index ef500a8084b..068e810e387 100644
--- a/source/gameengine/Rasterizer/RAS_TexMatrix.h
+++ b/source/gameengine/Rasterizer/RAS_TexMatrix.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_TexMatrix.h
+ * \ingroup bgerast
+ */
+
#ifndef __RASTEXMATRIX
#define __RASTEXMATRIX
diff --git a/source/gameengine/Rasterizer/RAS_TexVert.cpp b/source/gameengine/Rasterizer/RAS_TexVert.cpp
index 2d2fd6deddd..fd984da8176 100644
--- a/source/gameengine/Rasterizer/RAS_TexVert.cpp
+++ b/source/gameengine/Rasterizer/RAS_TexVert.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Rasterizer/RAS_TexVert.cpp
+ * \ingroup bgerast
+ */
+
+
#include "RAS_TexVert.h"
#include "MT_Matrix4x4.h"
diff --git a/source/gameengine/Rasterizer/RAS_TexVert.h b/source/gameengine/Rasterizer/RAS_TexVert.h
index bdf2a6487ad..bbccd3cca9d 100644
--- a/source/gameengine/Rasterizer/RAS_TexVert.h
+++ b/source/gameengine/Rasterizer/RAS_TexVert.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file RAS_TexVert.h
+ * \ingroup bgerast
+ */
+
#ifndef __RAS_TEXVERT
#define __RAS_TEXVERT
diff --git a/source/gameengine/Rasterizer/RAS_texmatrix.cpp b/source/gameengine/Rasterizer/RAS_texmatrix.cpp
index e69601fe091..89536eb0562 100644
--- a/source/gameengine/Rasterizer/RAS_texmatrix.cpp
+++ b/source/gameengine/Rasterizer/RAS_texmatrix.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/Rasterizer/RAS_texmatrix.cpp
+ * \ingroup bgerast
+ */
+
+
#include "RAS_TexMatrix.h"
void RAS_CalcTexMatrix(RAS_TexVert p[3],MT_Point3& origin,MT_Vector3& udir,MT_Vector3& vdir)
diff --git a/source/gameengine/SceneGraph/SG_BBox.cpp b/source/gameengine/SceneGraph/SG_BBox.cpp
index f46c1088466..b5618ebbf03 100644
--- a/source/gameengine/SceneGraph/SG_BBox.cpp
+++ b/source/gameengine/SceneGraph/SG_BBox.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Bounding Box
*/
+/** \file gameengine/SceneGraph/SG_BBox.cpp
+ * \ingroup bgesg
+ */
+
+
#include <math.h>
#include "SG_BBox.h"
diff --git a/source/gameengine/SceneGraph/SG_BBox.h b/source/gameengine/SceneGraph/SG_BBox.h
index 1a65fc7ef6f..9b18c121919 100644
--- a/source/gameengine/SceneGraph/SG_BBox.h
+++ b/source/gameengine/SceneGraph/SG_BBox.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,7 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Bounding Box
+ */
+
+/** \file SG_BBox.h
+ * \ingroup bgesg
+ * \brief Bounding Box
*/
#ifndef __SG_BBOX_H__
diff --git a/source/gameengine/SceneGraph/SG_Controller.cpp b/source/gameengine/SceneGraph/SG_Controller.cpp
index d2464b22608..b5e3c13ee79 100644
--- a/source/gameengine/SceneGraph/SG_Controller.cpp
+++ b/source/gameengine/SceneGraph/SG_Controller.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* @file SG_Controller.cpp
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/SceneGraph/SG_Controller.cpp
+ * \ingroup bgesg
+ */
+
+
#include "SG_Controller.h"
void
diff --git a/source/gameengine/SceneGraph/SG_Controller.h b/source/gameengine/SceneGraph/SG_Controller.h
index b4636d5fa62..fbc27bb93f3 100644
--- a/source/gameengine/SceneGraph/SG_Controller.h
+++ b/source/gameengine/SceneGraph/SG_Controller.h
@@ -1,4 +1,4 @@
-/**
+/*
* Implementationclass to derive controllers from
*
* $Id$
@@ -29,6 +29,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SG_Controller.h
+ * \ingroup bgesg
+ */
+
#ifndef __SG_CONTROLLER_H
#define __SG_CONTROLLER_H
diff --git a/source/gameengine/SceneGraph/SG_DList.h b/source/gameengine/SceneGraph/SG_DList.h
index 0768eaa5021..b82e51e0d2f 100644
--- a/source/gameengine/SceneGraph/SG_DList.h
+++ b/source/gameengine/SceneGraph/SG_DList.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SG_DList.h
+ * \ingroup bgesg
+ */
+
#ifndef __SG_DLIST
#define __SG_DLIST
diff --git a/source/gameengine/SceneGraph/SG_IObject.cpp b/source/gameengine/SceneGraph/SG_IObject.cpp
index 38baf6994e2..3064e6662b9 100644
--- a/source/gameengine/SceneGraph/SG_IObject.cpp
+++ b/source/gameengine/SceneGraph/SG_IObject.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/SceneGraph/SG_IObject.cpp
+ * \ingroup bgesg
+ */
+
+
#include "SG_IObject.h"
#include "SG_Controller.h"
diff --git a/source/gameengine/SceneGraph/SG_IObject.h b/source/gameengine/SceneGraph/SG_IObject.h
index 4c9c31e4934..26e317bdcd9 100644
--- a/source/gameengine/SceneGraph/SG_IObject.h
+++ b/source/gameengine/SceneGraph/SG_IObject.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SG_IObject.h
+ * \ingroup bgesg
+ */
+
#ifndef __SG_IOBJECT
#define __SG_IOBJECT
diff --git a/source/gameengine/SceneGraph/SG_Node.cpp b/source/gameengine/SceneGraph/SG_Node.cpp
index 1d27dfa1388..01ada4ea473 100644
--- a/source/gameengine/SceneGraph/SG_Node.cpp
+++ b/source/gameengine/SceneGraph/SG_Node.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -26,6 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/SceneGraph/SG_Node.cpp
+ * \ingroup bgesg
+ */
+
+
#include "SG_Node.h"
#include "SG_ParentRelation.h"
#include <algorithm>
diff --git a/source/gameengine/SceneGraph/SG_Node.h b/source/gameengine/SceneGraph/SG_Node.h
index 30d09b5bdfd..1116cc53672 100644
--- a/source/gameengine/SceneGraph/SG_Node.h
+++ b/source/gameengine/SceneGraph/SG_Node.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SG_Node.h
+ * \ingroup bgesg
+ */
+
#ifndef __SG_NODE_H
#define __SG_NODE_H
diff --git a/source/gameengine/SceneGraph/SG_ParentRelation.h b/source/gameengine/SceneGraph/SG_ParentRelation.h
index 0bc04245c93..577e3a5c26c 100644
--- a/source/gameengine/SceneGraph/SG_ParentRelation.h
+++ b/source/gameengine/SceneGraph/SG_ParentRelation.h
@@ -1,23 +1,4 @@
-/**
- * @mainpage SG_ParentRelation
-
- * @section
- *
- * This is an abstract interface class to the Scene Graph library.
- * It allows you to specify how child nodes react to parent nodes.
- * Normally a child will use it's parent's transforms to compute
- * it's own global transforms. How this is performed depends on
- * the type of relation. For example if the parent is a vertex
- * parent to this child then the child should not inherit any
- * rotation information from the parent. Or if the parent is a
- * 'slow parent' to this child then the child should react
- * slowly to changes in the parent's position. The exact relation
- * is left for you to implement by filling out this interface
- * with concrete examples.
- *
- * There is exactly one SG_ParentRelation per SG_Node. Subclasses
- * should not be value types and should be allocated on the heap.
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -47,6 +28,29 @@
*
*/
+/** \file SG_ParentRelation.h
+ * \ingroup bgesg
+ * @page SG_ParentRelationPage SG_ParentRelation
+
+ * @section SG_ParentRelationSection SG_ParentRelation
+ *
+ * This is an abstract interface class to the Scene Graph library.
+ * It allows you to specify how child nodes react to parent nodes.
+ * Normally a child will use it's parent's transforms to compute
+ * it's own global transforms. How this is performed depends on
+ * the type of relation. For example if the parent is a vertex
+ * parent to this child then the child should not inherit any
+ * rotation information from the parent. Or if the parent is a
+ * 'slow parent' to this child then the child should react
+ * slowly to changes in the parent's position. The exact relation
+ * is left for you to implement by filling out this interface
+ * with concrete examples.
+ *
+ * There is exactly one SG_ParentRelation per SG_Node. Subclasses
+ * should not be value types and should be allocated on the heap.
+ *
+ */
+
#ifndef __SG_ParentRelation_h
#define __SG_ParentRelation_h
diff --git a/source/gameengine/SceneGraph/SG_QList.h b/source/gameengine/SceneGraph/SG_QList.h
index 691ec9e1262..de79c35821e 100644
--- a/source/gameengine/SceneGraph/SG_QList.h
+++ b/source/gameengine/SceneGraph/SG_QList.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file SG_QList.h
+ * \ingroup bgesg
+ */
+
#ifndef __SG_QLIST
#define __SG_QLIST
diff --git a/source/gameengine/SceneGraph/SG_Spatial.cpp b/source/gameengine/SceneGraph/SG_Spatial.cpp
index f93dbfd4ebe..ca778d164c8 100644
--- a/source/gameengine/SceneGraph/SG_Spatial.cpp
+++ b/source/gameengine/SceneGraph/SG_Spatial.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file gameengine/SceneGraph/SG_Spatial.cpp
+ * \ingroup bgesg
+ */
+
+
#include "SG_Node.h"
#include "SG_Spatial.h"
#include "SG_Controller.h"
diff --git a/source/gameengine/SceneGraph/SG_Spatial.h b/source/gameengine/SceneGraph/SG_Spatial.h
index b8193806ecb..e15a3f3cc32 100644
--- a/source/gameengine/SceneGraph/SG_Spatial.h
+++ b/source/gameengine/SceneGraph/SG_Spatial.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -27,6 +27,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file SG_Spatial.h
+ * \ingroup bgesg
+ */
+
#ifndef __SG_SPATIAL_H
#define __SG_SPATIAL_H
diff --git a/source/gameengine/SceneGraph/SG_Tree.cpp b/source/gameengine/SceneGraph/SG_Tree.cpp
index 098f1db8e66..ee013fd327d 100644
--- a/source/gameengine/SceneGraph/SG_Tree.cpp
+++ b/source/gameengine/SceneGraph/SG_Tree.cpp
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* Bounding Box
*/
+/** \file gameengine/SceneGraph/SG_Tree.cpp
+ * \ingroup bgesg
+ */
+
+
#include <math.h>
#include "SG_BBox.h"
diff --git a/source/gameengine/SceneGraph/SG_Tree.h b/source/gameengine/SceneGraph/SG_Tree.h
index fa6facde66c..4ab8586f09f 100644
--- a/source/gameengine/SceneGraph/SG_Tree.h
+++ b/source/gameengine/SceneGraph/SG_Tree.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -25,7 +25,10 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Bounding Box
+ */
+
+/** \file SG_Tree.h
+ * \ingroup bgesg
*/
#ifndef __SG_TREE_H__
diff --git a/source/gameengine/VideoTexture/BlendType.h b/source/gameengine/VideoTexture/BlendType.h
index 2b273253af6..a5c695d737e 100644
--- a/source/gameengine/VideoTexture/BlendType.h
+++ b/source/gameengine/VideoTexture/BlendType.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file BlendType.h
+ * \ingroup bgevideotex
+ */
+
#if !defined BLENDTYPE_H
#define BLENDTYPE_H
diff --git a/source/gameengine/VideoTexture/Common.h b/source/gameengine/VideoTexture/Common.h
index f771077bbba..6ca38ee44eb 100644
--- a/source/gameengine/VideoTexture/Common.h
+++ b/source/gameengine/VideoTexture/Common.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file VideoTexture/Common.h
+ * \ingroup bgevideotex
+ */
+
#if defined WIN32
#define WINDOWS_LEAN_AND_MEAN
#endif
diff --git a/source/gameengine/VideoTexture/Exception.cpp b/source/gameengine/VideoTexture/Exception.cpp
index 124c8ae27d8..8c8258585a5 100644
--- a/source/gameengine/VideoTexture/Exception.cpp
+++ b/source/gameengine/VideoTexture/Exception.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/Exception.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/Exception.h b/source/gameengine/VideoTexture/Exception.h
index 74dc444c0a9..16248186108 100644
--- a/source/gameengine/VideoTexture/Exception.h
+++ b/source/gameengine/VideoTexture/Exception.h
@@ -21,6 +21,10 @@ http://www.gnu.org/copyleft/lesser.txt.
*/
+/** \file Exception.h
+ * \ingroup bgevideotex
+ */
+
#if !defined EXCEPTION_H
#define EXCEPTION_H
diff --git a/source/gameengine/VideoTexture/FilterBase.cpp b/source/gameengine/VideoTexture/FilterBase.cpp
index b2abd4354fd..65c25837a89 100644
--- a/source/gameengine/VideoTexture/FilterBase.cpp
+++ b/source/gameengine/VideoTexture/FilterBase.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/FilterBase.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/FilterBase.h b/source/gameengine/VideoTexture/FilterBase.h
index b6080f018d5..5bba153be2a 100644
--- a/source/gameengine/VideoTexture/FilterBase.h
+++ b/source/gameengine/VideoTexture/FilterBase.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file FilterBase.h
+ * \ingroup bgevideotex
+ */
+
#if !defined FILTERBASE_H
#define FILTERBASE_H
diff --git a/source/gameengine/VideoTexture/FilterBlueScreen.cpp b/source/gameengine/VideoTexture/FilterBlueScreen.cpp
index 73b104d4585..04ddef99879 100644
--- a/source/gameengine/VideoTexture/FilterBlueScreen.cpp
+++ b/source/gameengine/VideoTexture/FilterBlueScreen.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/FilterBlueScreen.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/FilterBlueScreen.h b/source/gameengine/VideoTexture/FilterBlueScreen.h
index 78728d291d8..0aa3022299d 100644
--- a/source/gameengine/VideoTexture/FilterBlueScreen.h
+++ b/source/gameengine/VideoTexture/FilterBlueScreen.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file FilterBlueScreen.h
+ * \ingroup bgevideotex
+ */
+
#if !defined FILTERBLUESCREEN_H
#define FILTERBLUESCREEN_H
diff --git a/source/gameengine/VideoTexture/FilterColor.cpp b/source/gameengine/VideoTexture/FilterColor.cpp
index 7bbbc86e35f..db8d493aa73 100644
--- a/source/gameengine/VideoTexture/FilterColor.cpp
+++ b/source/gameengine/VideoTexture/FilterColor.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/FilterColor.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/FilterColor.h b/source/gameengine/VideoTexture/FilterColor.h
index b7e52c4521c..2478727a6be 100644
--- a/source/gameengine/VideoTexture/FilterColor.h
+++ b/source/gameengine/VideoTexture/FilterColor.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file FilterColor.h
+ * \ingroup bgevideotex
+ */
+
#if !defined FILTERCOLOR_H
#define FILTERCOLOR_H
diff --git a/source/gameengine/VideoTexture/FilterNormal.cpp b/source/gameengine/VideoTexture/FilterNormal.cpp
index d755e6294c9..3dfd7c38b46 100644
--- a/source/gameengine/VideoTexture/FilterNormal.cpp
+++ b/source/gameengine/VideoTexture/FilterNormal.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/FilterNormal.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/FilterNormal.h b/source/gameengine/VideoTexture/FilterNormal.h
index 840043be9a1..90ebd6c03ed 100644
--- a/source/gameengine/VideoTexture/FilterNormal.h
+++ b/source/gameengine/VideoTexture/FilterNormal.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file FilterNormal.h
+ * \ingroup bgevideotex
+ */
+
#if !defined FILTERNORMAL_H
#define FILTERNORMAL_H
diff --git a/source/gameengine/VideoTexture/FilterSource.cpp b/source/gameengine/VideoTexture/FilterSource.cpp
index 4b67785edb3..5fea4c74a82 100644
--- a/source/gameengine/VideoTexture/FilterSource.cpp
+++ b/source/gameengine/VideoTexture/FilterSource.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/FilterSource.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/FilterSource.h b/source/gameengine/VideoTexture/FilterSource.h
index 254e0a02679..3518f3134ff 100644
--- a/source/gameengine/VideoTexture/FilterSource.h
+++ b/source/gameengine/VideoTexture/FilterSource.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file FilterSource.h
+ * \ingroup bgevideotex
+ */
+
#if !defined FILTERSOURCE_H
#define FILTERSOURCE_H
diff --git a/source/gameengine/VideoTexture/ImageBase.cpp b/source/gameengine/VideoTexture/ImageBase.cpp
index bbeebfb590f..a70c56a070c 100644
--- a/source/gameengine/VideoTexture/ImageBase.cpp
+++ b/source/gameengine/VideoTexture/ImageBase.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/ImageBase.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/ImageBase.h b/source/gameengine/VideoTexture/ImageBase.h
index 43a56290bee..53485ceef7a 100644
--- a/source/gameengine/VideoTexture/ImageBase.h
+++ b/source/gameengine/VideoTexture/ImageBase.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file ImageBase.h
+ * \ingroup bgevideotex
+ */
+
#if !defined IMAGEBASE_H
#define IMAGEBASE_H
diff --git a/source/gameengine/VideoTexture/ImageBuff.cpp b/source/gameengine/VideoTexture/ImageBuff.cpp
index b8a67ccfc40..44c4df7fae0 100644
--- a/source/gameengine/VideoTexture/ImageBuff.cpp
+++ b/source/gameengine/VideoTexture/ImageBuff.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/ImageBuff.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/ImageBuff.h b/source/gameengine/VideoTexture/ImageBuff.h
index 271647361e8..f0f14f2b4b1 100644
--- a/source/gameengine/VideoTexture/ImageBuff.h
+++ b/source/gameengine/VideoTexture/ImageBuff.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file ImageBuff.h
+ * \ingroup bgevideotex
+ */
+
#if !defined IMAGEBUFF_H
#define IMAGEBUFF_H
diff --git a/source/gameengine/VideoTexture/ImageMix.cpp b/source/gameengine/VideoTexture/ImageMix.cpp
index 7b304dda3ce..7a8226aab03 100644
--- a/source/gameengine/VideoTexture/ImageMix.cpp
+++ b/source/gameengine/VideoTexture/ImageMix.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/ImageMix.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/ImageMix.h b/source/gameengine/VideoTexture/ImageMix.h
index 47bd644860f..ada936b4be5 100644
--- a/source/gameengine/VideoTexture/ImageMix.h
+++ b/source/gameengine/VideoTexture/ImageMix.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file ImageMix.h
+ * \ingroup bgevideotex
+ */
+
#if !defined IMAGEMIX_H
#define IMAGEMIX_H
diff --git a/source/gameengine/VideoTexture/ImageRender.cpp b/source/gameengine/VideoTexture/ImageRender.cpp
index 2325329d55b..6038416ba68 100644
--- a/source/gameengine/VideoTexture/ImageRender.cpp
+++ b/source/gameengine/VideoTexture/ImageRender.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/ImageRender.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/ImageRender.h b/source/gameengine/VideoTexture/ImageRender.h
index 7861a2df79a..1101fbbc2d4 100644
--- a/source/gameengine/VideoTexture/ImageRender.h
+++ b/source/gameengine/VideoTexture/ImageRender.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file ImageRender.h
+ * \ingroup bgevideotex
+ */
+
#if !defined IMAGERENDER_H
#define IMAGERENDER_H
diff --git a/source/gameengine/VideoTexture/ImageViewport.cpp b/source/gameengine/VideoTexture/ImageViewport.cpp
index 50f5244138a..d0e5ee74f6e 100644
--- a/source/gameengine/VideoTexture/ImageViewport.cpp
+++ b/source/gameengine/VideoTexture/ImageViewport.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/ImageViewport.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/ImageViewport.h b/source/gameengine/VideoTexture/ImageViewport.h
index 49db56bcf19..1b415fc58be 100644
--- a/source/gameengine/VideoTexture/ImageViewport.h
+++ b/source/gameengine/VideoTexture/ImageViewport.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file ImageViewport.h
+ * \ingroup bgevideotex
+ */
+
#if !defined IMAGEVIEWPORT_H
#define IMAGEVIEWPORT_H
diff --git a/source/gameengine/VideoTexture/PyTypeList.cpp b/source/gameengine/VideoTexture/PyTypeList.cpp
index c374348da26..5064cd925ed 100644
--- a/source/gameengine/VideoTexture/PyTypeList.cpp
+++ b/source/gameengine/VideoTexture/PyTypeList.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/PyTypeList.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of blendTex library
diff --git a/source/gameengine/VideoTexture/PyTypeList.h b/source/gameengine/VideoTexture/PyTypeList.h
index 8ca1e976de7..089699aaa7e 100644
--- a/source/gameengine/VideoTexture/PyTypeList.h
+++ b/source/gameengine/VideoTexture/PyTypeList.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file PyTypeList.h
+ * \ingroup bgevideotex
+ */
+
#if !defined PYTYPELIST_H
#define PYTYPELIST_H
diff --git a/source/gameengine/VideoTexture/Texture.cpp b/source/gameengine/VideoTexture/Texture.cpp
index f97ceb1fa67..0eaec4be713 100644
--- a/source/gameengine/VideoTexture/Texture.cpp
+++ b/source/gameengine/VideoTexture/Texture.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/Texture.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/Texture.h b/source/gameengine/VideoTexture/Texture.h
index 1bbef8f0f9e..198a0d2b146 100644
--- a/source/gameengine/VideoTexture/Texture.h
+++ b/source/gameengine/VideoTexture/Texture.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file VideoTexture/Texture.h
+ * \ingroup bgevideotex
+ */
+
#if !defined TEXTURE_H
#define TEXTURE_H
diff --git a/source/gameengine/VideoTexture/VideoBase.cpp b/source/gameengine/VideoTexture/VideoBase.cpp
index bd620309926..c23c8fdc188 100644
--- a/source/gameengine/VideoTexture/VideoBase.cpp
+++ b/source/gameengine/VideoTexture/VideoBase.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/VideoBase.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/VideoBase.h b/source/gameengine/VideoTexture/VideoBase.h
index 0c8668ee0bc..08000161f14 100644
--- a/source/gameengine/VideoTexture/VideoBase.h
+++ b/source/gameengine/VideoTexture/VideoBase.h
@@ -20,6 +20,10 @@ http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+/** \file VideoBase.h
+ * \ingroup bgevideotex
+ */
+
#if !defined VIDEOBASE_H
#define VIDEOBASE_H
diff --git a/source/gameengine/VideoTexture/VideoFFmpeg.cpp b/source/gameengine/VideoTexture/VideoFFmpeg.cpp
index 5a80522ea7d..63dbc5bb7ba 100644
--- a/source/gameengine/VideoTexture/VideoFFmpeg.cpp
+++ b/source/gameengine/VideoTexture/VideoFFmpeg.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/VideoFFmpeg.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/gameengine/VideoTexture/VideoFFmpeg.h b/source/gameengine/VideoTexture/VideoFFmpeg.h
index a19d8969b40..9b09c485329 100644
--- a/source/gameengine/VideoTexture/VideoFFmpeg.h
+++ b/source/gameengine/VideoTexture/VideoFFmpeg.h
@@ -19,6 +19,11 @@ Place - Suite 330, Boston, MA 02111-1307, USA, or go to
http://www.gnu.org/copyleft/lesser.txt.
-----------------------------------------------------------------------------
*/
+
+/** \file VideoFFmpeg.h
+ * \ingroup bgevideotex
+ */
+
#if !defined VIDEOFFMPEG_H
#define VIDEOFFMPEG_H
diff --git a/source/gameengine/VideoTexture/blendVideoTex.cpp b/source/gameengine/VideoTexture/blendVideoTex.cpp
index 5cb50900c89..c1258bbb6e4 100644
--- a/source/gameengine/VideoTexture/blendVideoTex.cpp
+++ b/source/gameengine/VideoTexture/blendVideoTex.cpp
@@ -1,3 +1,6 @@
+/** \file gameengine/VideoTexture/blendVideoTex.cpp
+ * \ingroup bgevideotex
+ */
/* $Id$
-----------------------------------------------------------------------------
This source file is part of VideoTexture library
diff --git a/source/kernel/gen_messaging/GEN_messaging.h b/source/kernel/gen_messaging/GEN_messaging.h
index 52c68947623..866716f3914 100644
--- a/source/kernel/gen_messaging/GEN_messaging.h
+++ b/source/kernel/gen_messaging/GEN_messaging.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file kernel/gen_messaging/GEN_messaging.h
+ * \ingroup genmess
+ */
+
#ifndef GEN_MESSAGING_H
#define GEN_MESSAGING_H
diff --git a/source/kernel/gen_messaging/intern/messaging.c b/source/kernel/gen_messaging/intern/messaging.c
index b1f8a5b8e56..93e6deac089 100644
--- a/source/kernel/gen_messaging/intern/messaging.c
+++ b/source/kernel/gen_messaging/intern/messaging.c
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -28,6 +28,11 @@
* A message and error sink for c and c++
*/
+/** \file kernel/gen_messaging/intern/messaging.c
+ * \ingroup genmess
+ */
+
+
#include "GEN_messaging.h"
diff --git a/source/kernel/gen_system/GEN_HashedPtr.cpp b/source/kernel/gen_system/GEN_HashedPtr.cpp
index f6c71c34896..f065d27bee2 100644
--- a/source/kernel/gen_system/GEN_HashedPtr.cpp
+++ b/source/kernel/gen_system/GEN_HashedPtr.cpp
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*
*/
+
+/** \file kernel/gen_system/GEN_HashedPtr.cpp
+ * \ingroup gensys
+ */
+
#include "GEN_HashedPtr.h"
#include "BLO_sys_types.h" // for intptr_t support
diff --git a/source/kernel/gen_system/GEN_HashedPtr.h b/source/kernel/gen_system/GEN_HashedPtr.h
index c3b79cf7ccf..86a7ceb9ae7 100644
--- a/source/kernel/gen_system/GEN_HashedPtr.h
+++ b/source/kernel/gen_system/GEN_HashedPtr.h
@@ -27,6 +27,11 @@
* ***** END GPL LICENSE BLOCK *****
*
*/
+
+/** \file kernel/gen_system/GEN_HashedPtr.h
+ * \ingroup gensys
+ */
+
#ifndef __GEN_HASHEDPTR
#define __GEN_HASHEDPTR
diff --git a/source/kernel/gen_system/GEN_Map.h b/source/kernel/gen_system/GEN_Map.h
index b70e1259fd6..4ac5a10c4c6 100644
--- a/source/kernel/gen_system/GEN_Map.h
+++ b/source/kernel/gen_system/GEN_Map.h
@@ -1,4 +1,4 @@
-/**
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -26,6 +26,11 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
+/** \file kernel/gen_system/GEN_Map.h
+ * \ingroup gensys
+ */
+
#ifndef GEN_MAP_H
#define GEN_MAP_H
diff --git a/source/kernel/gen_system/SYS_SingletonSystem.cpp b/source/kernel/gen_system/SYS_SingletonSystem.cpp
index 52bd3d87470..08ee186c723 100644
--- a/source/kernel/gen_system/SYS_SingletonSystem.cpp
+++ b/source/kernel/gen_system/SYS_SingletonSystem.cpp
@@ -28,6 +28,11 @@
* Unique instance of system class for system specific information / access
* Used by SYS_System
*/
+
+/** \file kernel/gen_system/SYS_SingletonSystem.cpp
+ * \ingroup gensys
+ */
+
#include "SYS_SingletonSystem.h"
// #include "GEN_DataCache.h"
diff --git a/source/kernel/gen_system/SYS_SingletonSystem.h b/source/kernel/gen_system/SYS_SingletonSystem.h
index 874f3fa9793..d8628558618 100644
--- a/source/kernel/gen_system/SYS_SingletonSystem.h
+++ b/source/kernel/gen_system/SYS_SingletonSystem.h
@@ -28,6 +28,11 @@
* Unique instance of system class for system specific information / access
* Used by SYS_System
*/
+
+/** \file kernel/gen_system/SYS_SingletonSystem.h
+ * \ingroup gensys
+ */
+
#ifndef __SINGLETONSYSTEM_H
#define __SINGLETONSYSTEM_H
diff --git a/source/kernel/gen_system/SYS_System.cpp b/source/kernel/gen_system/SYS_System.cpp
index b2e27f179e6..b2de797fc8d 100644
--- a/source/kernel/gen_system/SYS_System.cpp
+++ b/source/kernel/gen_system/SYS_System.cpp
@@ -28,6 +28,11 @@
* System specific information / access.
* Interface to the commandline arguments
*/
+
+/** \file kernel/gen_system/SYS_System.cpp
+ * \ingroup gensys
+ */
+
#include "SYS_System.h"
#include "SYS_SingletonSystem.h"
diff --git a/source/kernel/gen_system/SYS_System.h b/source/kernel/gen_system/SYS_System.h
index b899100b83c..34fed4a81a2 100644
--- a/source/kernel/gen_system/SYS_System.h
+++ b/source/kernel/gen_system/SYS_System.h
@@ -29,6 +29,11 @@
* Interface to the commandline arguments
*/
+/** \file kernel/gen_system/SYS_System.h
+ * \ingroup gensys
+ */
+
+
#ifndef __SYSTEM_INCLUDE
#define __SYSTEM_INCLUDE