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/intern
diff options
context:
space:
mode:
authorKent Mein <mein@cs.umn.edu>2007-06-28 16:24:00 +0400
committerKent Mein <mein@cs.umn.edu>2007-06-28 16:24:00 +0400
commitdcc802209563dbf597def05a430132d80d991b3e (patch)
treeaf53ed1296845b5f35da72430d6db78df5b16d71 /intern
parent83c65e71e88074d69fdf940a36c3d2b2073585f9 (diff)
Just cleaning up dirs no longer in use.
Kent
Diffstat (limited to 'intern')
-rw-r--r--intern/action/ACT_Action.h141
-rw-r--r--intern/action/ACT_ActionC-Api.h193
-rw-r--r--intern/action/ACT_ActionStack.h185
-rw-r--r--intern/action/Makefile52
-rw-r--r--intern/action/doc/Doxyfile746
-rw-r--r--intern/action/intern/ACT_Action.cpp68
-rw-r--r--intern/action/intern/ACT_ActionC-Api.cpp134
-rw-r--r--intern/action/intern/ACT_ActionStack.cpp245
-rw-r--r--intern/action/intern/ACT_CallbackAction.h125
-rw-r--r--intern/action/intern/Makefile42
-rw-r--r--intern/action/make/msvc_6_0/action.dsp128
-rw-r--r--intern/action/make/msvc_6_0/action.dsw29
-rw-r--r--intern/action/make/msvc_7_0/action.sln21
-rw-r--r--intern/action/make/msvc_7_0/action.vcproj145
-rw-r--r--intern/action/test/action_c_test/ActionTest.c87
-rw-r--r--intern/action/test/action_c_test/TestAction.c63
-rw-r--r--intern/action/test/action_c_test/TestAction.h51
-rw-r--r--intern/action/test/action_c_test/make/msvc_6_0/action_c_test.dsp109
-rw-r--r--intern/action/test/action_c_test/make/msvc_6_0/action_c_test.dsw44
-rw-r--r--intern/action/test/action_cpp_test/ActionTest.cpp87
-rw-r--r--intern/action/test/action_cpp_test/TestAction.h58
-rw-r--r--intern/action/test/action_cpp_test/make/msvc_6_0/action_cpp_test.dsp105
-rw-r--r--intern/action/test/action_cpp_test/make/msvc_6_0/action_cpp_test.dsw44
-rw-r--r--intern/csg/SConscript8
-rw-r--r--intern/csg/extern/CSG_Interface.h434
-rw-r--r--intern/csg/intern/CSG_BBox.h206
-rw-r--r--intern/csg/intern/CSG_BBoxTree.cpp125
-rw-r--r--intern/csg/intern/CSG_BBoxTree.h135
-rw-r--r--intern/csg/intern/CSG_BlenderVProp.h94
-rw-r--r--intern/csg/intern/CSG_BooleanOp.h88
-rw-r--r--intern/csg/intern/CSG_BooleanOp.inl235
-rw-r--r--intern/csg/intern/CSG_CVertex.h104
-rw-r--r--intern/csg/intern/CSG_ConnectedMesh.h95
-rw-r--r--intern/csg/intern/CSG_ConnectedMeshWrapper.inl210
-rw-r--r--intern/csg/intern/CSG_GeometryBinder.h72
-rw-r--r--intern/csg/intern/CSG_IndexDefs.h42
-rw-r--r--intern/csg/intern/CSG_Math.h152
-rw-r--r--intern/csg/intern/CSG_Math.inl362
-rw-r--r--intern/csg/intern/CSG_Mesh.h66
-rw-r--r--intern/csg/intern/CSG_MeshCopier.h45
-rw-r--r--intern/csg/intern/CSG_MeshWrapper.h110
-rw-r--r--intern/csg/intern/CSG_MeshWrapper.inl150
-rw-r--r--intern/csg/intern/CSG_Polygon.h93
-rw-r--r--intern/csg/intern/CSG_SplitFunction.h188
-rw-r--r--intern/csg/intern/CSG_TreeQueries.h158
-rw-r--r--intern/csg/intern/CSG_Triangulate.h96
-rw-r--r--intern/csg/intern/CSG_Triangulate.inl232
-rw-r--r--intern/csg/intern/CSG_Vertex.h56
-rw-r--r--intern/csg/intern/MT_Line3.cpp81
-rw-r--r--intern/csg/intern/MT_Line3.h109
-rw-r--r--intern/csg/intern/blender/CSG_BlenderMesh.h45
-rw-r--r--intern/csg/intern/blender/CSG_BlenderVProp.cpp35
-rw-r--r--intern/csg/intern/blender/CSG_CsgOp.cpp257
-rw-r--r--intern/csg/intern/blender/CSG_CsgOp.h59
-rw-r--r--intern/csg/intern/blender/CSG_IndexDefs.h22
-rw-r--r--intern/csg/intern/blender/CSG_Interface.cpp193
-rw-r--r--intern/csg/intern/blender/CSG_Iterator.h199
-rw-r--r--intern/csg/intern/blender/CSG_MeshBuilder.h123
-rw-r--r--intern/csg/intern/blender/CSG_PropArray.h126
-rw-r--r--intern/csg/intern/blender/CSG_SimpleProp.cpp4
-rw-r--r--intern/csg/intern/blender/CSG_SimpleProp.h58
-rw-r--r--intern/csg/make/msvc60/csg.dsp234
-rw-r--r--intern/csg/make/msvc60/csg.dsw29
-rw-r--r--intern/keymaker/Makefile92
-rw-r--r--intern/keymaker/blenkey.h83
-rw-r--r--intern/keymaker/key.c496
-rw-r--r--intern/keymaker/key_internal.h92
-rw-r--r--intern/keymaker/keyloader.c319
-rw-r--r--intern/keymaker/make/msvc_6_0/blenkey.dsp134
-rw-r--r--intern/keymaker/make/msvc_6_0/blenkey.dsw29
-rw-r--r--intern/keymaker/make/msvc_7_0/blenkey.sln21
-rw-r--r--intern/keymaker/make/msvc_7_0/blenkey.vcproj282
-rw-r--r--intern/keymaker/mt19937int.c134
-rw-r--r--intern/keymaker/mt19937int.h46
-rw-r--r--intern/keymaker/python/key_pyc.h154
75 files changed, 0 insertions, 9914 deletions
diff --git a/intern/action/ACT_Action.h b/intern/action/ACT_Action.h
deleted file mode 100644
index 876ca2bc6b9..00000000000
--- a/intern/action/ACT_Action.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date March 31, 2001
- */
-
-#ifndef _H_ACT_ACTION_H_
-#define _H_ACT_ACTION_H_
-
-#include "MEM_RefCounted.h"
-#include "STR_String.h"
-
-/**
- * An action that can be applied or undone.
- * Virtual base class for actions with a name.
- * An action object inherits the shared object reference count mechanism.
- * @author Maarten Gribnau
- * @date March 31, 2001
- */
-
-class ACT_Action : public MEM_RefCounted {
-public:
- /**
- * Constructs an action with the given name .
- * @param name the name of the action.
- * @param applied state of the action after creation.
- */
- ACT_Action(const STR_String& name, bool applied = false);
-
- /**
- * Returns the name of the action.
- * @param name the name of the action.
- */
- inline virtual void getName(STR_String& name) const;
-
- /**
- * Returns the name of the action as a pointer to the data of the string.
- * @return pointer to the name of the action.
- */
- inline virtual char* getName();
-
- /**
- * Sets the name of the action.
- * @param name the name of the action.
- */
- inline virtual void setName(const STR_String& name);
-
- /**
- * Returns whether this action is applied.
- * @return whether this action is applied.
- */
- inline virtual bool getIsApplied() const;
-
-
- /**
- * Call this member to apply an action.
- * Child classes should override the doApply member to implement apply functionality.
- * @see doApply.
- */
- virtual void apply();
-
- /**
- * Call this member to undo an action .
- * Child classes should override the doUndo member to implement undo functionality.
- * @see doApply()
- */
- virtual void undo();
-
-protected:
- /**
- * Implementations should overload this method to provide the apply functionality.
- */
- virtual void doApply() = 0;
-
- /**
- * Implementations should overload this method to provide the undo functionality.
- */
- virtual void doUndo() = 0;
-
- /** Name of this action */
- STR_String m_name;
- /** Is this action already applied? */
- bool m_applied;
-};
-
-
-void ACT_Action::getName(STR_String& name) const
-{
- name = m_name;
-}
-
-char* ACT_Action::getName()
-{
- return m_name.Ptr();
-}
-
-void ACT_Action::setName(const STR_String& name)
-{
- m_name = name;
-}
-
-inline bool ACT_Action::getIsApplied() const
-{
- return m_applied;
-}
-
-#endif // _H_ACT_ACTION_H_
-
diff --git a/intern/action/ACT_ActionC-Api.h b/intern/action/ACT_ActionC-Api.h
deleted file mode 100644
index 64f279a2df6..00000000000
--- a/intern/action/ACT_ActionC-Api.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * Interface for C access to actions.
- * @author Maarten Gribnau
- * @date April, 25, 2001
- */
-
-#ifndef _H_ACT_ACTION_C_API
-#define _H_ACT_ACTION_C_API
-
-#include "MEM_RefCountedC-Api.h"
-
-/** A pointer to an action object. */
-typedef MEM_TRefCountedObjectPtr ACT_ActionPtr;
-/** A pointer to an action stack object. */
-typedef MEM_TObjectPtr ACT_ActionStackPtr;
-
-
-/** A pointer to user data passed by the callbacks. */
-typedef void* ACT_ActionUserDataPtr;
-
-/**
- * An action apply callback routine.
- * @param action The action that should be applied.
- * @param userData The pointer to the user data provided when the action was created.
- */
-typedef void (*ACT_ActionApplyProcPtr)(ACT_ActionPtr action, ACT_ActionUserDataPtr userData);
-
-/**
- * An action undo callback routine.
- * @param action The action that should be undone.
- * @param userData The pointer to the user data provided when the action was created.
- */
-typedef void (*ACT_ActionUndoProcPtr)(ACT_ActionPtr action, ACT_ActionUserDataPtr userData);
-
-/**
- * An action dispose callback routine.
- * @param action The action that is disposed.
- * @param userData The pointer to the user data provided when the action was created.
- */
-typedef void (*ACT_ActionDisposeProcPtr)(ACT_ActionPtr action, ACT_ActionUserDataPtr userData);
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * An action is a shared object that can be applied or undone.
- */
-
-/**
- * Creates a new action.
- * This is an action that calls the given callbacks when it needs to be applied or undone.
- * @param name The name of the action.
- * @param isApplied Indication as to whether the action is already applied (0 = not applied).
- * @param userData Pointer passed to the apply/undo callbacks.
- * @param applyProc Pointer to the callback invoked when the action needs to be applied.
- * @param undoProc Pointer to the callback invoked when the action needs to be undone.
- * @return The new action (null in case of error).
- */
-extern ACT_ActionPtr ACT_ActionCreate(
- char* name,
- int isApplied,
- ACT_ActionUserDataPtr userData,
- ACT_ActionApplyProcPtr applyProc,
- ACT_ActionUndoProcPtr undoProc,
- ACT_ActionDisposeProcPtr disposeProc);
-
-/**
- * Returns the name of an action.
- * @return The name of the action (null in case of error).
- */
-extern char* ACT_ActionGetName(ACT_ActionPtr action);
-
-
-
-/**
- * An action stack stores actions and implements undo/redo functionality.
- */
-
-/**
- * Creates a new action stack.
- * @param stackSize The maximum number of actions on the stack.
- * @return The new stack (or NULL in case of error).
- */
-extern ACT_ActionStackPtr ACT_ActionStackCreate(unsigned int stackSize);
-
-/**
- * Disposes an action stack.
- * @param stack The appropriate stack.
- */
-extern void ACT_ActionStackDispose(ACT_ActionStackPtr stack);
-
-/**
- * Returns the current depth of the stack.
- * @param stack The appropriate stack.
- * @return the current stack depth.
- */
-extern unsigned int ACT_ActionStackGetStackDepth(ACT_ActionStackPtr stack);
-
-/**
- * Returns the current maximum depth of the stack.
- * @param stack The appropriate stack.
- * @return the maximum stack depth.
- */
-extern unsigned int ACT_ActionStackGetMaxStackDepth(ACT_ActionStackPtr stack);
-
-/**
- * Sets new maximum depth of the stack.
- * @param stack The appropriate stack.
- * @param maxStackDepth The new stack depth.
- */
-extern void ACT_ActionStackSetMaxStackDepth(ACT_ActionStackPtr stack, unsigned int maxStackDepth);
-
-/**
- * Pushes an action on the stack.
- * If the action has not been applied yet, it will be applied here.
- * This will increase the reference count of the action.
- * If there is not enough capacity, the action at the bottom of the stack is removed (and its reference count decreased).
- * @param stack The appropriate stack.
- * @param action the action that is pushed onto the stack.
- */
-extern void ACT_ActionStackPush(ACT_ActionStackPtr stack, ACT_ActionPtr action);
-
-/**
- * Returns pointer to the current undo item.
- * @param stack The appropriate stack.
- * @return The action scheduled for undo (0 if there is none).
- */
-extern ACT_ActionStackPtr ACT_ActionStackPeekUndo(ACT_ActionStackPtr stack);
-
-/**
- * Returns pointer to the current redo item.
- * @param stack The appropriate stack.
- * @return The action scheduled for redo (0 if there is none).
- */
-extern ACT_ActionStackPtr ACT_ActionStackPeekRedo(ACT_ActionStackPtr stack);
-
-/**
- * Undos the current action.
- * @param stack The appropriate stack.
- * This will move the current undo index down (if the stack depth allows it).
- */
-extern void ACT_ActionStackUndo(ACT_ActionStackPtr stack);
-
-/**
- * Redos the current action.
- * @param stack The appropriate stack.
- * This will move the action index up (if the stack depth allows it).
- */
-extern void ACT_ActionStackRedo(ACT_ActionStackPtr stack);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // _H_ACT_ACTION_C_API
-
diff --git a/intern/action/ACT_ActionStack.h b/intern/action/ACT_ActionStack.h
deleted file mode 100644
index 421dca76e59..00000000000
--- a/intern/action/ACT_ActionStack.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date March 31, 2001
- */
-
-#ifndef _H_ACT_ACTIONSTACK
-#define _H_ACT_ACTIONSTACK
-
-#include "ACT_Action.h"
-#include <deque>
-
-
-/**
- * A stack with actions that implements undo/redo capabilities.
- * A stack can grow to a maximum number of actions by pushing actions on the stack.
- * By calling undo and redo the apply and undo members of the actions on the stack are called.
- * In addition, this will move the stackIndex up and down the stack.
- * When a new action is pushed onto the stack, the actions above the current action are removed from the stack.
- * Actions pushed onto the stack are applied if they are not applied already.
- * @todo implement error handling (e.g. memory errors)
- * @author Maarten Gribnau
- * @date March 31, 2001
- */
-
-class ACT_ActionStack {
-public:
- /**
- * Constructs an action stack.
- */
- ACT_ActionStack(unsigned int maxStackDepth = 1);
-
- /**
- * Destructs an action stack.
- */
- virtual ~ACT_ActionStack();
-
- /**
- * Returns the current depth of the stack.
- * @return the current stack depth.
- */
- virtual unsigned int getStackDepth() const;
-
- /**
- * Returns the current maximum depth of the stack.
- * @return the maximum stack depth.
- */
- virtual unsigned int getMaxStackDepth() const;
-
- /**
- * Sets new maximum depth of the stack.
- * @param maxStackDepth The new stack depth.
- */
- virtual void setMaxStackDepth(unsigned int maxStackDepth);
-
- /**
- * Pushes an action on the stack.
- * If the action has not been applied yet, it will be applied here.
- * This will increase the reference count of the action.
- * If there is not enough capacity, the action at the bottom of the stack is removed (and its reference count decreased).
- * @param action the action that is pushed onto the stack.
- */
- virtual void push(ACT_Action& action);
-
- /**
- * Returns pointer to the current undo item.
- * @return The action scheduled for undo (0 if there is none).
- */
- virtual ACT_Action* peekUndo();
-
- /**
- * Returns pointer to the current redo item.
- * @return The action scheduled for redo (0 if there is none).
- */
- virtual ACT_Action* peekRedo();
-
- /**
- * Flushes the action stack.
- * All actions are removed from the stack and their reference counts decreased.
- */
- virtual void flush();
-
- /**
- * Returns whether we can undo the current action.
- * @return Indication of the possibility to undo.
- */
- virtual bool canUndo() const;
-
- /**
- * Undos the current action.
- * This will move the current undo index down (if the stack depth allows it).
- */
- virtual void undo();
-
- /**
- * Returns whether we can redo the current action.
- * @return Indication of the possibility to redo.
- */
- virtual bool canRedo() const;
-
- /**
- * Redos the current action.
- * This will move the action index up (if the stack depth allows it).
- */
- virtual void redo();
-
-protected:
- /**
- * Removes <i>numActions</i> actions from the back of the stack.
- * @param numActions number of items to remove.
- * @return the number of actions removed.
- */
- virtual unsigned int popBack(unsigned int numActions = 1);
-
- /**
- * Removes <i>numActions</i> actions from the front of the stack.
- * @param numActions number of items to remove.
- * @return the number of actions removed.
- */
- virtual unsigned int popFront(unsigned int numActions = 1);
-
- /**
- * Returns the index of the current undo action.
- * @param index The index of the action.
- * @return Indication as to whether the index is valid (==true).
- */
- virtual bool getUndoIndex(unsigned int& index) const;
-
- /**
- * Returns the index of the current redo action.
- * @param index The index of the action.
- * @return Indication as to whether the index is valid (==true).
- */
- virtual bool getRedoIndex(unsigned int& index) const;
-
- /** The maximum depth of this stack. */
- unsigned int m_maxStackDepth;
- /** The index of the current undo action in the stack. */
- unsigned int m_undoIndex;
- /** Is the index of the current undo action in the stack valid? */
- bool m_undoIndexValid;
- /** The index of the current redo action in the stack. */
- unsigned int m_redoIndex;
- /** Is the index of the current redo action in the stack valid? */
- bool m_redoIndexValid;
- /** The stack with actions. */
- deque<ACT_Action*> m_stack;
-};
-
-
-#endif // _H_ACT_ACTIONSTACK
-
diff --git a/intern/action/Makefile b/intern/action/Makefile
deleted file mode 100644
index ed1cfccfc52..00000000000
--- a/intern/action/Makefile
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# $Id$
-#
-# ***** BEGIN GPL/BL DUAL 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. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): Hans Lambermont
-#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
-# action main makefile.
-#
-
-include nan_definitions.mk
-
-LIBNAME = action
-SOURCEDIR = intern/$(LIBNAME)
-DIR = $(OCGDIR)/$(SOURCEDIR)
-DIRS = intern
-TESTDIRS = test
-
-include nan_subdirs.mk
-
-install: all debug
- @[ -d $(NAN_ACTION) ] || mkdir $(NAN_ACTION)
- @[ -d $(NAN_ACTION)/include ] || mkdir $(NAN_ACTION)/include
- @[ -d $(NAN_ACTION)/lib ] || mkdir $(NAN_ACTION)/lib
- @[ -d $(NAN_ACTION)/lib/debug ] || mkdir $(NAN_ACTION)/lib/debug
- @../tools/cpifdiff.sh $(DIR)/libaction.a $(NAN_ACTION)/lib/
- @../tools/cpifdiff.sh $(DIR)/debug/libaction.a $(NAN_ACTION)/lib/debug/
- @../tools/cpifdiff.sh *.h $(NAN_ACTION)/include/
-
diff --git a/intern/action/doc/Doxyfile b/intern/action/doc/Doxyfile
deleted file mode 100644
index 2cc9de2d97c..00000000000
--- a/intern/action/doc/Doxyfile
+++ /dev/null
@@ -1,746 +0,0 @@
-# Doxyfile 1.2.4
-
-# This file describes the settings to be used by doxygen for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-PROJECT_NAME = foundation
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY =
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese,
-# Korean, Hungarian, Norwegian, Spanish, Romanian, Russian, Croatian,
-# Polish, Portuguese and Slovene.
-
-OUTPUT_LANGUAGE = English
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = YES
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = YES
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these class will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. It is allowed to use relative paths in the argument list.
-
-STRIP_FROM_PATH =
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = NO
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a class diagram (in Html and LaTeX) for classes with base or
-# super classes. Setting the tag to NO turns the diagrams off.
-
-CLASS_DIAGRAMS = YES
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-
-SOURCE_BROWSER = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower case letters. If set to YES upper case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# users are adviced to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = YES
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like the Qt-style comments (thus requiring an
-# explict @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF = YES
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# reimplements.
-
-INHERIT_DOCS = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 8
-
-# The ENABLE_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS =
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = YES
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text.
-
-WARN_FORMAT = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT = ../extern ../intern
-
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-FILE_PATTERNS = *.h *.cpp *.c
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE =
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories.
-
-EXCLUDE_PATTERNS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS =
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-
-INPUT_FILTER =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse.
-
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT = html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet
-
-HTML_STYLESHEET =
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side pannel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript and frames is required (for instance Netscape 4.0+
-# or Internet explorer 4.0+).
-
-GENERATE_TREEVIEW = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT = latex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimised for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using a WORD or other.
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assigments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation. Warning: This feature
-# is still experimental and very incomplete.
-
-GENERATE_XML = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_PREDEFINED tags.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH = ../../generic/extern
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed.
-
-PREDEFINED =
-
-# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED =
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES tag can be used to specify one or more tagfiles.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = NO
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to
-# YES then doxygen will generate a graph for each documented file showing
-# the direct and indirect include dependencies of the file with other
-# documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, INCLUDED_BY_GRAPH, and HAVE_DOT tags are set to
-# YES then doxygen will generate a graph for each documented header file showing
-# the documented files that directly or indirectly include this file
-
-INCLUDED_BY_GRAPH = YES
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-
-DOT_PATH =
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_WIDTH = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL =
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL =
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH =
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = c:\program files\doxygen\bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS =
diff --git a/intern/action/intern/ACT_Action.cpp b/intern/action/intern/ACT_Action.cpp
deleted file mode 100644
index a94c3c9f336..00000000000
--- a/intern/action/intern/ACT_Action.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date April, 25, 2001
- */
-
-#include "ACT_Action.h"
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-ACT_Action::ACT_Action(const STR_String& name, bool applied)
-: m_name(name), m_applied(applied)
-{
-}
-
-
-void ACT_Action::apply()
-{
- if (!m_applied) {
- doApply();
- m_applied = true;
- }
-}
-
-
-void ACT_Action::undo()
-{
- if (m_applied) {
- doUndo();
- m_applied = false;
- }
-}
diff --git a/intern/action/intern/ACT_ActionC-Api.cpp b/intern/action/intern/ACT_ActionC-Api.cpp
deleted file mode 100644
index 7fcd1d7b60a..00000000000
--- a/intern/action/intern/ACT_ActionC-Api.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date April, 25, 2001
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "ACT_ActionC-Api.h"
-
-#include "ACT_ActionStack.h"
-#include "ACT_CallbackAction.h"
-
-
-ACT_ActionPtr ACT_ActionCreate(
- char* name,
- int isApplied,
- ACT_ActionUserDataPtr data,
- ACT_ActionApplyProcPtr applyProc,
- ACT_ActionUndoProcPtr undoProc,
- ACT_ActionDisposeProcPtr disposeProc)
-{
- STR_String tmp (name);
- ACT_CallbackAction* action = new ACT_CallbackAction(tmp, isApplied != 0, data, applyProc, undoProc, disposeProc);
- return (ACT_ActionPtr) action;
-}
-
-
-char* ACT_ActionGetName(ACT_ActionPtr action)
-{
- return action ? ((ACT_Action*)action)->getName() : 0;
-}
-
-
-ACT_ActionStackPtr ACT_ActionStackCreate(unsigned int stackSize)
-{
- return ((ACT_ActionStackPtr) (new ACT_ActionStack (stackSize)));
-}
-
-
-void ACT_ActionStackDispose(ACT_ActionStackPtr stack)
-{
- if (stack) {
- delete (ACT_ActionStack*) stack;
- }
-}
-
-
-unsigned int ACT_ActionStackGetStackDepth(ACT_ActionStackPtr stack)
-{
- return stack ? ((ACT_ActionStack*)stack)->getStackDepth() : 0;
-}
-
-unsigned int ACT_ActionStackGetMaxStackDepth(ACT_ActionStackPtr stack)
-{
- return stack ? ((ACT_ActionStack*)stack)->getMaxStackDepth() : 0;
-}
-
-void ACT_ActionStackSetMaxStackDepth(ACT_ActionStackPtr stack, unsigned int maxStackDepth)
-{
- if (stack) {
- ((ACT_ActionStack*)stack)->setMaxStackDepth(maxStackDepth);
- }
-}
-
-void ACT_ActionStackPush(ACT_ActionStackPtr stack, ACT_ActionPtr action)
-{
- if (stack && action) {
- ((ACT_ActionStack*)stack)->push(*((ACT_Action*)action));
- }
-}
-
-
-ACT_ActionStackPtr ACT_ActionStackPeekUndo(ACT_ActionStackPtr stack)
-{
- return (ACT_ActionStackPtr) (stack ? ((ACT_ActionStack*)stack)->peekUndo() : 0);
-}
-
-
-ACT_ActionStackPtr ACT_ActionStackPeekRedo(ACT_ActionStackPtr stack)
-{
- return (ACT_ActionStackPtr) (stack ? ((ACT_ActionStack*)stack)->peekRedo() : 0);
-}
-
-
-void ACT_ActionStackUndo(ACT_ActionStackPtr stack)
-{
- if (stack) {
- ((ACT_ActionStack*)stack)->undo();
- }
-}
-
-
-void ACT_ActionStackRedo(ACT_ActionStackPtr stack)
-{
- if (stack) {
- ((ACT_ActionStack*)stack)->redo();
- }
-}
diff --git a/intern/action/intern/ACT_ActionStack.cpp b/intern/action/intern/ACT_ActionStack.cpp
deleted file mode 100644
index 2025f744958..00000000000
--- a/intern/action/intern/ACT_ActionStack.cpp
+++ /dev/null
@@ -1,245 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date March 31, 2001
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "ACT_ActionStack.h"
-
-
-ACT_ActionStack::ACT_ActionStack(unsigned int maxStackDepth)
- : m_maxStackDepth(maxStackDepth),
- m_undoIndex(0), m_undoIndexValid(false),
- m_redoIndex(0), m_redoIndexValid(false)
-{
-}
-
-
-ACT_ActionStack::~ACT_ActionStack()
-{
- flush();
-}
-
-
-unsigned int ACT_ActionStack::getStackDepth() const
-{
- return m_stack.size();
-}
-
-
-unsigned int ACT_ActionStack::getMaxStackDepth() const
-{
- return m_maxStackDepth;
-}
-
-
-void ACT_ActionStack::setMaxStackDepth(unsigned int maxStackDepth)
-{
- if (maxStackDepth != m_maxStackDepth) {
- if (maxStackDepth) {
- unsigned int size = m_stack.size();
- if (maxStackDepth < size) {
- // New max stack size is smaller than current stack size, need to shrink stack
- unsigned int numRemove = size - maxStackDepth;
- if (m_undoIndex >= maxStackDepth) {
- // Pop items from the front (throw away undo steps)
- popFront(numRemove);
- m_undoIndex -= numRemove;
- m_redoIndex = m_undoIndex + 1;
- m_redoIndexValid = m_redoIndexValid && (maxStackDepth > 1);
- }
- else {
- // Pop items from the back (throw away redo steps)
- popBack(numRemove);
- m_redoIndexValid = m_redoIndexValid && (m_redoIndex < maxStackDepth);
- }
- }
- }
- else {
- // New stack size is zero
- flush();
- }
- m_maxStackDepth = maxStackDepth;
- }
-}
-
-
-void ACT_ActionStack::push(ACT_Action& action)
-{
- if (m_maxStackDepth) {
- unsigned int size = m_stack.size();
- if (m_redoIndexValid) {
- // Remove items after the current action (throw away redo steps)
- popBack(size - m_redoIndex);
- }
- else if (size >= m_maxStackDepth) {
- // Remove items from the front (throw away undo steps)
- popFront(m_maxStackDepth - size + 1);
- }
-
- // Store the action
- if (!action.getIsApplied()) {
- action.apply();
- }
- action.incRef();
- m_stack.push_back(&action);
-
- // Update action indices
- m_redoIndex = m_stack.size();
- m_redoIndexValid = false;
- m_undoIndex = m_redoIndex - 1;
- m_undoIndexValid = true;
- }
-}
-
-
-ACT_Action* ACT_ActionStack::peekUndo()
-{
- unsigned int i;
- return getUndoIndex(i) ? m_stack[i] : 0;
-}
-
-
-ACT_Action* ACT_ActionStack::peekRedo()
-{
- unsigned int i;
- return getRedoIndex(i) ? m_stack[i] : 0;
-}
-
-
-void ACT_ActionStack::flush()
-{
- popBack(m_stack.size());
- m_undoIndex = 0;
- m_undoIndexValid = false;
- m_redoIndex = 0;
- m_redoIndexValid = false;
-}
-
-
-bool ACT_ActionStack::canUndo() const
-{
- unsigned int i;
- return getUndoIndex(i);
-}
-
-
-void ACT_ActionStack::undo()
-{
- ACT_Action* action = peekUndo();
- if (action) {
- action->undo();
-
- // Update action indices
- m_redoIndex = m_undoIndex;
- m_redoIndexValid = true;
- if (m_undoIndex) {
- m_undoIndex--;
- }
- else {
- m_undoIndexValid = false;
- }
- }
-}
-
-
-bool ACT_ActionStack::canRedo() const
-{
- unsigned int i;
- return getRedoIndex(i);
-}
-
-
-void ACT_ActionStack::redo()
-{
- ACT_Action* action = peekRedo();
- if (action) {
- action->apply();
-
- // Update action indices
- m_undoIndex = m_redoIndex;
- m_undoIndexValid = true;
- m_redoIndex++;
- m_redoIndexValid = m_redoIndex < m_stack.size();
- }
-}
-
-
-unsigned int ACT_ActionStack::popFront(unsigned int numActions)
-{
- unsigned int numRemoved = 0;
-
- while (numActions-- && m_stack.size()) {
- ACT_Action* action = m_stack[0];
- action->decRef();
- m_stack.pop_front();
- numRemoved++;
- }
- return numRemoved;
-}
-
-
-unsigned int ACT_ActionStack::popBack(unsigned int numActions)
-{
- unsigned int numRemoved = 0;
- unsigned int size;
-
- while (numActions-- && (size = m_stack.size())) {
- ACT_Action* action = m_stack[size-1];
- action->decRef();
- m_stack.pop_back();
- numRemoved++;
- }
- return numRemoved;
-}
-
-
-bool ACT_ActionStack::getUndoIndex(unsigned int& i) const
-{
- i = m_undoIndex;
- return m_undoIndexValid;
-}
-
-
-bool ACT_ActionStack::getRedoIndex(unsigned int& i) const
-{
- i = m_redoIndex;
- return m_redoIndexValid;
-}
diff --git a/intern/action/intern/ACT_CallbackAction.h b/intern/action/intern/ACT_CallbackAction.h
deleted file mode 100644
index 148a77f13ed..00000000000
--- a/intern/action/intern/ACT_CallbackAction.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date June 17, 2001
- */
-
-#ifndef _H_ACT_CALLBACK_ACTION_H
-#define _H_ACT_CALLBACK_ACTION_H
-
-#include "ACT_Action.h"
-#include "ACT_ActionC-Api.h"
-
-
-/**
- * An action implementation that uses callbacks for undo and redo.
- * @author Maarten Gribnau
- * @date June 17, 2001
- */
-
-class ACT_CallbackAction : public ACT_Action {
-public:
- /**
- * Constructs an action with the given name .
- * @param name The name of the action.
- * @param applied State of the action after creation.
- * @param data Pointer to user data passed to the callbacks.
- * @param applyProc Callback invoked for apply action.
- * @param undoProc Callback invoked for undo action.
- */
- ACT_CallbackAction(
- STR_String& name,
- bool applied,
- ACT_ActionUserDataPtr data,
- ACT_ActionApplyProcPtr applyProc,
- ACT_ActionUndoProcPtr undoProc,
- ACT_ActionDisposeProcPtr disposeProc)
- : ACT_Action(name, applied), m_userData(data), m_applyProc(applyProc), m_undoProc(undoProc), m_disposeProc(disposeProc)
- {
- }
-
- /**
- * Default destructor.
- * Will call the dispose callback.
- */
- virtual ~ACT_CallbackAction()
- {
- // Should assert
- m_disposeProc((ACT_ActionPtr)this, m_userData);
- }
-
-
-protected:
- /**
- * Calls the appropriate callback.
- */
- inline virtual void doApply();
-
- /**
- * Calls the appropriate callback.
- */
- inline virtual void doUndo();
-
- /** User data supplied at creation and passed to the callbacks. */
- ACT_ActionUserDataPtr m_userData;
-
- /** Callback invoked for apply action. */
- ACT_ActionApplyProcPtr m_applyProc;
-
- /** Callback invoked for undo action. */
- ACT_ActionApplyProcPtr m_undoProc;
-
- /** Callback invoked when the action is disposed. */
- ACT_ActionDisposeProcPtr m_disposeProc;
-};
-
-
-inline void ACT_CallbackAction::doApply()
-{
- // Should assert
- m_applyProc((ACT_ActionPtr)this, m_userData);
-}
-
-
-inline void ACT_CallbackAction::doUndo()
-{
- // Should assert
- m_undoProc((ACT_ActionPtr)this, m_userData);
-}
-
-
-#endif // _H_ACT_CALLBACK_ACTION_H
-
diff --git a/intern/action/intern/Makefile b/intern/action/intern/Makefile
deleted file mode 100644
index 29f82bb7c0d..00000000000
--- a/intern/action/intern/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# $Id$
-#
-# ***** BEGIN GPL/BL DUAL 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. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
-# action intern Makefile
-#
-
-LIBNAME = action
-DIR = $(OCGDIR)/intern/$(LIBNAME)
-
-include nan_compile.mk
-
-CPPFLAGS += -I..
-CPPFLAGS += -I$(NAN_STRING)/include
-CPPFLAGS += -I$(NAN_MEMUTIL)/include
-
diff --git a/intern/action/make/msvc_6_0/action.dsp b/intern/action/make/msvc_6_0/action.dsp
deleted file mode 100644
index 3ea450b19a7..00000000000
--- a/intern/action/make/msvc_6_0/action.dsp
+++ /dev/null
@@ -1,128 +0,0 @@
-# Microsoft Developer Studio Project File - Name="action" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=action - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "action.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "action.mak" CFG="action - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "action - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "action - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "action - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "../../../../../obj/windows/intern/action/"
-# PROP Intermediate_Dir "../../../../../obj/windows/intern/action/"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "../.." /I "../../../../lib/windows/memutil/include/" /I "../../../../lib/windows/string/include/" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ELSEIF "$(CFG)" == "action - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "../../../../../obj/windows/intern/action/debug"
-# PROP Intermediate_Dir "../../../../../obj/windows/intern/action/debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../.." /I "../../../../lib/windows/memutil/include/" /I "../../../../lib/windows/string/include/" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ENDIF
-
-# Begin Target
-
-# Name "action - Win32 Release"
-# Name "action - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\..\intern\ACT_Action.cpp
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\intern\ACT_ActionC-Api.cpp"
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\ACT_ActionStack.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Group "intern"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\intern\ACT_CallbackAction.h
-# End Source File
-# End Group
-# Begin Group "extern"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\ACT_Action.h
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\ACT_ActionC-Api.h"
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\ACT_ActionStack.h
-# End Source File
-# End Group
-# End Group
-# End Target
-# End Project
diff --git a/intern/action/make/msvc_6_0/action.dsw b/intern/action/make/msvc_6_0/action.dsw
deleted file mode 100644
index f93cbb896fd..00000000000
--- a/intern/action/make/msvc_6_0/action.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "action"=".\action.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/intern/action/make/msvc_7_0/action.sln b/intern/action/make/msvc_7_0/action.sln
deleted file mode 100644
index 3ab830940c8..00000000000
--- a/intern/action/make/msvc_7_0/action.sln
+++ /dev/null
@@ -1,21 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 7.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "action", "action.vcproj", "{FA745D82-2D98-4843-8B72-874AB3622A8C}"
-EndProject
-Global
- GlobalSection(SolutionConfiguration) = preSolution
- ConfigName.0 = Debug
- ConfigName.1 = Release
- EndGlobalSection
- GlobalSection(ProjectDependencies) = postSolution
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {FA745D82-2D98-4843-8B72-874AB3622A8C}.Debug.ActiveCfg = Debug|Win32
- {FA745D82-2D98-4843-8B72-874AB3622A8C}.Debug.Build.0 = Debug|Win32
- {FA745D82-2D98-4843-8B72-874AB3622A8C}.Release.ActiveCfg = Release|Win32
- {FA745D82-2D98-4843-8B72-874AB3622A8C}.Release.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
diff --git a/intern/action/make/msvc_7_0/action.vcproj b/intern/action/make/msvc_7_0/action.vcproj
deleted file mode 100644
index 04af58a8d52..00000000000
--- a/intern/action/make/msvc_7_0/action.vcproj
+++ /dev/null
@@ -1,145 +0,0 @@
-<?xml version="1.0" encoding = "Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.00"
- Name="action"
- SccProjectName=""
- SccLocalPath="">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory=".\../../../../../obj/windows/intern/action/debug"
- IntermediateDirectory=".\../../../../../obj/windows/intern/action/debug"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../..,../../../../lib/windows/memutil/include/,../../../../lib/windows/string/include/"
- PreprocessorDefinitions="WIN32,_DEBUG,_LIB"
- BasicRuntimeChecks="3"
- RuntimeLibrary="5"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\../../../../../obj/windows/intern/action/debug/action.pch"
- AssemblerListingLocation=".\../../../../../obj/windows/intern/action/debug/"
- ObjectFile=".\../../../../../obj/windows/intern/action/debug/"
- ProgramDataBaseFileName=".\../../../../../obj/windows/intern/action/debug/"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"
- DebugInformationFormat="4"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile=".\../../../../../obj/windows/intern/action/debug\action.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1033"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory=".\../../../../../obj/windows/intern/action"
- IntermediateDirectory=".\../../../../../obj/windows/intern/action"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="../..,../../../../lib/windows/memutil/include/,../../../../lib/windows/string/include/"
- PreprocessorDefinitions="WIN32,NDEBUG,_LIB"
- StringPooling="TRUE"
- RuntimeLibrary="4"
- EnableFunctionLevelLinking="TRUE"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\../../../../../obj/windows/intern/action/action.pch"
- AssemblerListingLocation=".\../../../../../obj/windows/intern/action/"
- ObjectFile=".\../../../../../obj/windows/intern/action/"
- ProgramDataBaseFileName=".\../../../../../obj/windows/intern/action/"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile=".\../../../../../obj/windows/intern/action\action.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1033"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- </Configuration>
- </Configurations>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
- <File
- RelativePath="..\..\intern\ACT_Action.cpp">
- </File>
- <File
- RelativePath="..\..\intern\ACT_ActionC-Api.cpp">
- </File>
- <File
- RelativePath="..\..\intern\ACT_ActionStack.cpp">
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl">
- <Filter
- Name="intern"
- Filter="">
- <File
- RelativePath="..\..\intern\ACT_CallbackAction.h">
- </File>
- </Filter>
- <Filter
- Name="extern"
- Filter="">
- <File
- RelativePath="..\..\ACT_Action.h">
- </File>
- <File
- RelativePath="..\..\ACT_ActionC-Api.h">
- </File>
- <File
- RelativePath="..\..\ACT_ActionStack.h">
- </File>
- </Filter>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/intern/action/test/action_c_test/ActionTest.c b/intern/action/test/action_c_test/ActionTest.c
deleted file mode 100644
index 8f169528204..00000000000
--- a/intern/action/test/action_c_test/ActionTest.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date March 31, 2001
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "ACT_ActionC-Api.h"
-#include "TestAction.h"
-
-int main(int argc, char *argv[])
-{
- ACT_ActionStackPtr stack = ACT_ActionStackCreate (3);
- ACT_ActionPtr action = ACT_ActionCreate("action1", 0, 0, printApplied, printUndone, printDisposed);
- ACT_ActionStackPush(stack, action);
- MEM_RefCountedDecRef(action);
- action = ACT_ActionCreate("action2", 0, 0, printApplied, printUndone, printDisposed);
- ACT_ActionStackPush(stack, action);
- MEM_RefCountedDecRef(action);
- action = ACT_ActionCreate("action3", 0, 0, printApplied, printUndone, printDisposed);
- ACT_ActionStackPush(stack, action);
- MEM_RefCountedDecRef(action);
-
- ACT_ActionStackUndo(stack);
- ACT_ActionStackUndo(stack);
- ACT_ActionStackUndo(stack);
- ACT_ActionStackRedo(stack);
- ACT_ActionStackRedo(stack);
- ACT_ActionStackRedo(stack);
-
- ACT_ActionStackSetMaxStackDepth(stack, 1);
- ACT_ActionStackUndo(stack);
- ACT_ActionStackRedo(stack);
- ACT_ActionStackSetMaxStackDepth(stack, 5);
- ACT_ActionStackUndo(stack);
- ACT_ActionStackRedo(stack);
-
- action = ACT_ActionCreate("action4", 0, 0, printApplied, printUndone, printDisposed);
- ACT_ActionStackPush(stack, action);
- MEM_RefCountedDecRef(action);
- ACT_ActionStackUndo(stack);
- action = ACT_ActionCreate("action5", 0, 0, printApplied, printUndone, printDisposed);
- ACT_ActionStackPush(stack, action);
- MEM_RefCountedDecRef(action);
- ACT_ActionStackUndo(stack);
- ACT_ActionStackUndo(stack);
- ACT_ActionStackRedo(stack);
- ACT_ActionStackRedo(stack);
-
- return 0;
-}
diff --git a/intern/action/test/action_c_test/TestAction.c b/intern/action/test/action_c_test/TestAction.c
deleted file mode 100644
index 0b4896dadd7..00000000000
--- a/intern/action/test/action_c_test/TestAction.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date March 31, 2001
- */
-
-#include <stdio.h>
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "TestAction.h"
-
-
-void printApplied(ACT_ActionPtr action, ACT_ActionUserDataPtr userData)
-{
- printf("%s: applied\n", ACT_ActionGetName(action));
-}
-
-void printUndone(ACT_ActionPtr action, ACT_ActionUserDataPtr userData)
-{
- printf("%s: undone\n", ACT_ActionGetName(action));
-}
-
-
-void printDisposed(ACT_ActionPtr action, ACT_ActionUserDataPtr userData)
-{
- printf("%s: disposed\n", ACT_ActionGetName(action));
-}
diff --git a/intern/action/test/action_c_test/TestAction.h b/intern/action/test/action_c_test/TestAction.h
deleted file mode 100644
index 487d8777b81..00000000000
--- a/intern/action/test/action_c_test/TestAction.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date March 31, 2001
- */
-
-#ifndef _H_ACT_TESTACTION_C_H_
-#define _H_ACT_TESTACTION_C_H_
-
-#include "ACT_ActionC-Api.h"
-
-void printApplied(ACT_ActionPtr action, ACT_ActionUserDataPtr userData);
-void printUndone(ACT_ActionPtr action, ACT_ActionUserDataPtr userData);
-void printDisposed(ACT_ActionPtr action, ACT_ActionUserDataPtr userData);
-
-
-#endif // _H_ACT_TESTACTION_C_H_
-
diff --git a/intern/action/test/action_c_test/make/msvc_6_0/action_c_test.dsp b/intern/action/test/action_c_test/make/msvc_6_0/action_c_test.dsp
deleted file mode 100644
index 807024f20be..00000000000
--- a/intern/action/test/action_c_test/make/msvc_6_0/action_c_test.dsp
+++ /dev/null
@@ -1,109 +0,0 @@
-# Microsoft Developer Studio Project File - Name="action_c_test" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=action_c_test - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "action_c_test.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "action_c_test.mak" CFG="action_c_test - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "action_c_test - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "action_c_test - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "action_c_test - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "../../../../../../../obj/windows/intern/action/test"
-# PROP Intermediate_Dir "../../../../../../../obj/windows/intern/action/test"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "../../../.." /I "../../../../../../lib/windows/memutil/include/" /I "../../../../../../lib/windows/string/include/" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib string.lib memutil.lib /nologo /subsystem:console /machine:I386 /libpath:"../../../../../../lib/windows/memutil/lib" /libpath:"../../../../../../lib/windows/string/lib"
-
-!ELSEIF "$(CFG)" == "action_c_test - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "../../../../../../../obj/windows/intern/action/test/debug"
-# PROP Intermediate_Dir "../../../../../../../obj/windows/intern/action/test/debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../.." /I "../../../../../../lib/windows/memutil/include/" /I "../../../../../../lib/windows/string/include/" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib string.lib memutil.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../../../../../lib/windows/memutil/lib/debug" /libpath:"../../../../../../lib/windows/string/lib/debug"
-
-!ENDIF
-
-# Begin Target
-
-# Name "action_c_test - Win32 Release"
-# Name "action_c_test - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\..\ActionTest.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\TestAction.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=..\..\TestAction.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/intern/action/test/action_c_test/make/msvc_6_0/action_c_test.dsw b/intern/action/test/action_c_test/make/msvc_6_0/action_c_test.dsw
deleted file mode 100644
index 688f24e4d53..00000000000
--- a/intern/action/test/action_c_test/make/msvc_6_0/action_c_test.dsw
+++ /dev/null
@@ -1,44 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "action"="..\..\..\..\make\msvc_6_0\action.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "action_c_test"=".\action_c_test.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name action
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/intern/action/test/action_cpp_test/ActionTest.cpp b/intern/action/test/action_cpp_test/ActionTest.cpp
deleted file mode 100644
index 55173bafb7b..00000000000
--- a/intern/action/test/action_cpp_test/ActionTest.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date March 31, 2001
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "ACT_ActionStack.h"
-#include "TestAction.h"
-
-int main()
-{
- ACT_ActionStack testStack (3);
- TestAction* testAction = new TestAction (STR_String("action1"));
- testStack.push(*testAction);
- testAction->decRef();
- testAction = new TestAction (STR_String("action2"));
- testStack.push(*testAction);
- testAction->decRef();
- testAction = new TestAction (STR_String("action3"));
- testStack.push(*testAction);
- testAction->decRef();
-
- testStack.undo();
- testStack.undo();
- testStack.undo();
- testStack.redo();
- testStack.redo();
- testStack.redo();
-
- testStack.setMaxStackDepth(1);
- testStack.undo();
- testStack.redo();
- testStack.setMaxStackDepth(5);
- testStack.undo();
- testStack.redo();
-
- testAction = new TestAction (STR_String("action4"));
- testStack.push(*testAction);
- testAction->decRef();
- testStack.undo();
- testAction = new TestAction (STR_String("action5"));
- testStack.push(*testAction);
- testAction->decRef();
- testStack.undo();
- testStack.undo();
- testStack.redo();
- testStack.redo();
-
- return 0;
-}
diff --git a/intern/action/test/action_cpp_test/TestAction.h b/intern/action/test/action_cpp_test/TestAction.h
deleted file mode 100644
index 3cd5ed893ad..00000000000
--- a/intern/action/test/action_cpp_test/TestAction.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date March 31, 2001
- */
-
-#ifndef _H_ACT_TESTACTION
-#define _H_ACT_TESTACTION
-
-#include "ACT_Action.h"
-
-#include <iostream>
-
-class TestAction : public ACT_Action
-{
-public:
- TestAction(const STR_String& name) : ACT_Action(name) {}
- virtual ~TestAction() { cout << m_name.Ptr() << ": deleted\n"; }
-protected:
- virtual void doApply() { cout << m_name.Ptr() << ": applied\n"; }
- virtual void doUndo() { cout << m_name.Ptr() << ": undone\n"; }
-};
-
-#endif // _H_ACT_TESTACTION
-
diff --git a/intern/action/test/action_cpp_test/make/msvc_6_0/action_cpp_test.dsp b/intern/action/test/action_cpp_test/make/msvc_6_0/action_cpp_test.dsp
deleted file mode 100644
index bc0c40b6d36..00000000000
--- a/intern/action/test/action_cpp_test/make/msvc_6_0/action_cpp_test.dsp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Microsoft Developer Studio Project File - Name="action_cpp_test" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=action_cpp_test - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "action_cpp_test.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "action_cpp_test.mak" CFG="action_cpp_test - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "action_cpp_test - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "action_cpp_test - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "action_cpp_test - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "../../../../../../../obj/windows/intern/action/test"
-# PROP Intermediate_Dir "../../../../../../../obj/windows/intern/action/test"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "../../../.." /I "../../../../../../lib/windows/memutil/include/" /I "../../../../../../lib/windows/string/include/" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib string.lib memutil.lib /nologo /subsystem:console /machine:I386 /libpath:"../../../../../../lib/windows/memutil/lib" /libpath:"../../../../../../lib/windows/string/lib"
-
-!ELSEIF "$(CFG)" == "action_cpp_test - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "../../../../../../../obj/windows/intern/action/test/debug"
-# PROP Intermediate_Dir "../../../../../../../obj/windows/intern/action/test/debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../.." /I "../../../../../../lib/windows/memutil/include/" /I "../../../../../../lib/windows/string/include/" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib string.lib memutil.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../../../../../lib/windows/memutil/lib/debug" /libpath:"../../../../../../lib/windows/string/lib/debug"
-
-!ENDIF
-
-# Begin Target
-
-# Name "action_cpp_test - Win32 Release"
-# Name "action_cpp_test - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\..\ActionTest.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=..\..\TestAction.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/intern/action/test/action_cpp_test/make/msvc_6_0/action_cpp_test.dsw b/intern/action/test/action_cpp_test/make/msvc_6_0/action_cpp_test.dsw
deleted file mode 100644
index 0a9d7374379..00000000000
--- a/intern/action/test/action_cpp_test/make/msvc_6_0/action_cpp_test.dsw
+++ /dev/null
@@ -1,44 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "action"="..\..\..\..\make\msvc_6_0\action.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "action_cpp_test"=".\action_cpp_test.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name action
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/intern/csg/SConscript b/intern/csg/SConscript
deleted file mode 100644
index 84d718e5b67..00000000000
--- a/intern/csg/SConscript
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/python
-Import('env')
-
-sources = env.Glob('intern/*.cpp') + env.Glob('intern/*.inl')
-
-incs = 'intern ../container ../moto/include ../memutil intern/blender extern'
-
-env.BlenderLib ('blender_BSP', sources, Split(incs) , [], libtype='blender', priority=15)
diff --git a/intern/csg/extern/CSG_Interface.h b/intern/csg/extern/CSG_Interface.h
deleted file mode 100644
index 44b01c6f500..00000000000
--- a/intern/csg/extern/CSG_Interface.h
+++ /dev/null
@@ -1,434 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-#ifndef CSG_BOOLEANOPS_H
-#define CSG_BOOLEANOPS_H
-
-
-/**
- * @section Interface structures for CSG module.
- * This interface falls into 2 categories.
- * The first section deals with an abstract mesh description
- * between blender and this module. The second deals with
- * the module functions.
- * The CSG module needs to know about the following entities:
- */
-
-/**
- * CSG_IFace -- an interface polygon structure.
- * vertex_index is a fixed size array of 4 elements containing indices into
- * an abstract vertex container. 3 or 4 of these elements may be used to
- * describe either quads or triangles.
- * vertex_number is the number of vertices in this face - either 3 or 4.
- * vertex_colors is an array of {r,g,b} triplets one for each vertex index.
- * tex_coords is an array of {u,v} triplets one for each vertex index.
- * user_data is a pointer to arbitary data of fixed width ,
- * this data is copied around with the face, and duplicated if a face is
- * split. Contains things like material index.
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if 0
-typedef struct {
- int vertex_index[4];
- int vertex_number;
-
- void *user_face_vertex_data[4];
- void *user_face_data;
-} CSG_IFace;
-#else
-
-/**
- * The following structs are much better to use than the crazy
- * abstract type above. It's a value type an allows the CSG
- * module to directly access mesh properties which is very useful
- * for debugging etc.
- */
-
-typedef struct
-{
- int m_vertexIndex;
- float m_uv[2];
- float m_color[4];
- short m_normal[3];
-} CSG_IFaceVertexData;
-
-typedef struct
-{
- struct Material *m_material;
-
- /* assorted tface flags */
- void *m_tpage;
- char m_flag, m_transp;
- short m_mode, m_tile;
-} CSG_IFaceData;
-
-typedef struct
-{
- CSG_IFaceVertexData m_vertexData[4];
- int m_vertexNumber;
-
- CSG_IFaceData m_faceData;
-
-} CSG_IFace;
-
-#endif
-
-/**
- * CSG_IVertex -- an interface vertex structure.
- * position is the location of the vertex in 3d space.
- */
-
-typedef struct {
- float position[3];
-} CSG_IVertex;
-
-
-/**
- * @section Iterator abstraction.
- *
- * The CSG module asks blender to fill in an instance of the above
- * structure, and requests blender to move up and down (iterate) through
- * it's face and vertex containers.
- *
- * An iterator supports the following functions.
- * int IsDone(iterator *it) -- returns true if the iterator has reached
- * the end of it's container.
- *
- * void Fill(iterator *it,DataType *data) -- Return the contents of the
- * container at the current iterator position.
- *
- * void Step(iterator *it) -- increment the iterator to the next position
- * in the container.
- *
- * The iterator is used in the following manner.
- *
- * MyIterator * iterator = ...
- * DataType data;
- *
- * while (!IsDone(iterator)) {
- * Fill(iterator,&data);
- * //process information pointed to by data
- * ...
- * Step(iterator);
- * }
- *
- * The CSG module does not want to know about the implementation of these
- * functions so we use the c function ptr mechanism to hide them. Our
- * iterator descriptor now looks like this.
- */
-
-typedef void* CSG_IteratorPtr;
-
-typedef int (*CSG_FaceItDoneFunc)(CSG_IteratorPtr it);
-typedef void (*CSG_FaceItFillFunc)(CSG_IteratorPtr it,CSG_IFace *face);
-typedef void (*CSG_FaceItStepFunc)(CSG_IteratorPtr it);
-typedef void (*CSG_FaceItResetFunc)(CSG_IteratorPtr it);
-
-typedef struct CSG_FaceIteratorDescriptor {
- CSG_IteratorPtr it;
- CSG_FaceItDoneFunc Done;
- CSG_FaceItFillFunc Fill;
- CSG_FaceItStepFunc Step;
- CSG_FaceItResetFunc Reset;
- unsigned int num_elements;
-} CSG_FaceIteratorDescriptor;
-
-/**
- * Similarly to walk through the vertex arrays we have.
- */
-typedef int (*CSG_VertexItDoneFunc)(CSG_IteratorPtr it);
-typedef void (*CSG_VertexItFillFunc)(CSG_IteratorPtr it,CSG_IVertex *face);
-typedef void (*CSG_VertexItStepFunc)(CSG_IteratorPtr it);
-typedef void (*CSG_VertexItResetFunc)(CSG_IteratorPtr it);
-
-typedef struct CSG_VertexIteratorDescriptor {
- CSG_IteratorPtr it;
- CSG_VertexItDoneFunc Done;
- CSG_VertexItFillFunc Fill;
- CSG_VertexItStepFunc Step;
- CSG_VertexItResetFunc Reset;
- unsigned int num_elements;
-} CSG_VertexIteratorDescriptor;
-
-/**
- * The actual iterator structures are not exposed to the CSG module, they
- * will contain datatypes specific to blender.
- */
-
-/**
- * @section CSG Module interface functions.
- *
- * The functions below are to be used in the following way:
- *
- * // Create a boolean operation handle
- * CSG_BooleanOperation *operation = CSG_NewBooleanFunction();
- * if (operation == NULL) {
- * // deal with low memory exception
- * }
- *
- * // Describe each mesh operand to the module.
- * // NOTE: example properties!
- * CSG_MeshPropertyDescriptor propA,propB;
- * propA.user_data_size = 0;
- * propA.user_face_vertex_data = 0;
- * propB.user_face_vertex_data = 0;
- * propB.user_data_size = 0;
- *
- * // Get the output properties of the mesh.
- * CSG_MeshPropertyDescriptor output_properties;
- * output_properties = CSG_DescibeOperands(
- * operation,
- * propA,
- * propB
- * );
- *
- * // Report to the user if they will loose any data!
- * ...
- *
- * // Get some mesh iterators for your mesh data structures
- * CSG_FaceIteratorDescriptor obA_faces = ...
- * CSG_VertexIteratorDescriptor obA_verts = ...
- *
- * // same for object B
- * CSG_FaceIteratorDescriptor obB_faces = ...
- * CSG_VertexIteratorDescriptor obB_verts = ...
- *
- * // perform the operation...!
- *
- * int success = CSG_PerformBooleanOperation(
- * operation,
- * e_csg_intersection,
- * obA_faces,
- * obA_vertices,
- * obB_faces,
- * obB_vertices
- * );
- *
- * // if the operation failes report miserable faiulre to user
- * // and clear up data structures.
- * if (!success) {
- * ...
- * CSG_FreeBooleanOperation(operation);
- * return;
- * }
- *
- * // read the new mesh vertices back from the module
- * // and assign to your own mesh structure.
- *
- * // First we need to create a CSG_IVertex so the module can fill it in.
- * CSG_IVertex vertex;
- * CSG_VertexIteratorDescriptor * verts_it = CSG_OutputVertexDescriptor(operation);
- *
- * // initialize your vertex container with the number of verts (verts_it->num_elements)
- *
- * while (!verts_it->Done(verts_it->it)) {
- * verts_it->Fill(verts_it->it,&vertex);
- *
- * // create a new vertex of your own type and add it
- * // to your mesh structure.
- * verts_it->Step(verts_it->it);
- * }
- * // Free the vertex iterator
- * CSG_FreeVertexDescriptor(verts_it);
- *
- * // similarly for faces.
- * CSG_IFace face;
- *
- * // you may need to reserve some memory in face->user_data here.
- *
- * // initialize your face container with the number of faces (faces_it->num_elements)
- *
- * CSG_FaceIteratorDescriptor * faces_it = CSG_OutputFaceDescriptor(operation);
- *
- * while (!faces_it->Done(faces_it->it)) {
- * faces_it->Fill(faces_it->it,&face);
- *
- * // create a new face of your own type and add it
- * // to your mesh structure.
- * faces_it->Step(&faces_it->it);
- * }
- *
- * // Free the face iterator
- * CSG_FreeVertexDescriptor(faces_it);
- *
- * // that's it free the operation.
- *
- * CSG_FreeBooleanOperation(operation);
- * return;
- *
- */
-
-/**
- * Description of boolean operation type.
- */
-
-typedef enum {
- e_csg_union,
- e_csg_intersection,
- e_csg_difference,
- e_csg_classify
-} CSG_OperationType;
-
-/**
- * 'Handle' into the CSG module that identifies a particular CSG operation.
- * the pointer CSG_info containers module specific data, and should not
- * be touched in anyway outside of the module.
- */
-
-typedef struct {
- void *CSG_info;
-} CSG_BooleanOperation;
-
-/**
- * Return a ptr to a CSG_BooleanOperation object allocated
- * on the heap. The CSG module owns the memory associated with
- * the returned ptr, use CSG_FreeBooleanOperation() to free this memory.
- */
- CSG_BooleanOperation *
-CSG_NewBooleanFunction(
- void
-);
-
-/**
- * The user data is handled by the BSP modules through
- * the following function which is called whenever the
- * module needs new face vertex properties (when a face is split).
- * d1,d2 are pointers to existing vertex face data. dnew is
- * a pointer to an allocated but unfilled area of user data of
- * size user_face_vertex_data_size in the CSG_MeshPropertyDescriptor
- * returned by a call to the above function. Epsilon is the relative
- * distance (between [0,1]) of the new vertex and the vertex associated
- * with d1. Use epsilon to interpolate the face vertex data in d1 and d2
- * and fill dnew
- */
-
-typedef int (*CSG_InterpolateUserFaceVertexDataFunc)(
- const CSG_IFaceVertexData *d1,
- const CSG_IFaceVertexData * d2,
- CSG_IFaceVertexData *dnew,
- double epsilon
-);
-
-
-/**
- * Attempt to perform a boolean operation between the 2 objects of the
- * desired type. This may fail due to an internal error or lack of memory.
- * In this case 0 is returned, otehrwise 1 is returned indicating success.
- * @param operation is a 'handle' into the CSG_Module created by CSG_NewBooleanFunction()
- * @param op_type is the operation to perform.
- * @param obAFaces is an iterator over the faces of objectA,
- * @param obAVertices is an iterator over the vertices of objectA
- * @param obAFaces is an iterator over the faces of objectB,
- * @param obAVertices is an iterator over the vertices of objectB
- * @param interp_func the face_vertex data interpolation function.(see above)
- *
- * All iterators must be valid and pointing to the first element in their
- * respective containers.
- */
- int
-CSG_PerformBooleanOperation(
- CSG_BooleanOperation * operation,
- CSG_OperationType op_type,
- CSG_FaceIteratorDescriptor obAFaces,
- CSG_VertexIteratorDescriptor obAVertices,
- CSG_FaceIteratorDescriptor obBFaces,
- CSG_VertexIteratorDescriptor obBVertices,
- CSG_InterpolateUserFaceVertexDataFunc interp_func
-);
-
-/**
- * If the a boolean operation was successful, you may access the results
- * through the following functions.
- *
- * CSG_OuputFaceDescriptor() returns a ptr to a CSG_FaceIteratorDesciptor
- * allocated on the heap and owned by the CSG module. The iterator is
- * positioned at the start of the internal face container.
- * CSG_OutputVertexDescriptor() returns a ptr to a CSG_VertexIteratorDescriptor
- * allocated on the heap and owned by the CSG module. The iterator is
- * positioned at the start of the internal vertex container.
- * There is no function to rewind an iterator but you may obtain more
- * than one
- * iterator at a time. Please use the function CSG_FreeFaceIterator()
- * and CSG_FreeVertexIterator to free internal memory allocated for these
- * iterators.
- *
- * If the last operation was not successful, these functions return NULL.
- */
- int
-CSG_OutputFaceDescriptor(
- CSG_BooleanOperation * operation,
- CSG_FaceIteratorDescriptor * output
-);
-
- int
-CSG_OutputVertexDescriptor(
- CSG_BooleanOperation * operation,
- CSG_VertexIteratorDescriptor *output
-);
-
-/**
- * Clean up functions.
- * Free internal memory associated with CSG interface structures. You must
- * call these functions on any structures created by the module, even if
- * subsequent operations did not succeed.
- */
- void
-CSG_FreeVertexDescriptor(
- CSG_VertexIteratorDescriptor * v_descriptor
-);
-
- void
-CSG_FreeFaceDescriptor(
- CSG_FaceIteratorDescriptor * f_descriptor
-);
-
-/**
- * Free the memory associated with a boolean operation.
- * NOTE any iterator descriptor describing the output will become
- * invalid after this call and should be freed immediately.
- */
- void
-CSG_FreeBooleanOperation(
- CSG_BooleanOperation *operation
-);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
-#endif
-
diff --git a/intern/csg/intern/CSG_BBox.h b/intern/csg/intern/CSG_BBox.h
deleted file mode 100644
index 4d17b935a80..00000000000
--- a/intern/csg/intern/CSG_BBox.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
-The following BBox class is a lightly modfied version of what
-is found in Free Solid 2.0
-*/
-
-/*
- SOLID - Software Library for Interference Detection
- Copyright (C) 1997-1998 Gino van den Bergen
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to gino@win.tue.nl,
- or write to:
- Gino van den Bergen
- Department of Mathematics and Computing Science
- Eindhoven University of Technology
- P.O. Box 513, 5600 MB Eindhoven, The Netherlands
-*/
-
-#ifndef _BBOX_H_
-#define _BBOX_H_
-
-#include "MT_Point3.h"
-#include "MT_Vector3.h"
-#include "MT_MinMax.h"
-
-class BBox {
-public:
- BBox() {}
-
- BBox(
- const MT_Point3& mini,
- const MT_Point3& maxi
- ) { SetValue(mini,maxi); }
-
- const MT_Point3&
- Center(
- ) const {
- return m_center;
- }
-
- const MT_Vector3&
- Extent(
- ) const {
- return m_extent;
- }
-
- MT_Point3&
- Center(
- ) {
- return m_center;
- }
-
- MT_Vector3&
- Extent(
- ) {
- return m_extent;
- }
-
- void
- SetValue(
- const MT_Point3& mini,
- const MT_Point3& maxi
- ) {
- m_extent = (maxi-mini)/2;
- m_center = mini+m_extent;
- }
-
- void
- Enclose(
- const BBox& a,
- const BBox& b
- ) {
- MT_Point3 lower(
- MT_min(a.Lower(0), b.Lower(0)),
- MT_min(a.Lower(1), b.Lower(1)),
- MT_min(a.Lower(2), b.Lower(2))
- );
- MT_Point3 upper(
- MT_max(a.Upper(0), b.Upper(0)),
- MT_max(a.Upper(1), b.Upper(1)),
- MT_max(a.Upper(2), b.Upper(2))
- );
- SetValue(lower, upper);
- }
-
- void
- SetEmpty() {
- m_center.setValue(0, 0, 0);
- m_extent.setValue(-MT_INFINITY,-MT_INFINITY,-MT_INFINITY);
- }
-
- void
- Include (
- const MT_Point3& p
- ) {
- MT_Point3 lower(
- MT_min(Lower(0), p[0]),
- MT_min(Lower(1), p[1]),
- MT_min(Lower(2), p[2])
- );
- MT_Point3 upper(
- MT_max(Upper(0), p[0]),
- MT_max(Upper(1), p[1]),
- MT_max(Upper(2), p[2])
- );
- SetValue(lower, upper);
- }
-
- void
- Include (
- const BBox& b
- ) {
- Enclose(*this, b);
- }
-
- MT_Scalar
- Lower(
- int i
- ) const {
- return m_center[i] - m_extent[i];
- }
- MT_Scalar
- Upper(
- int i
- ) const {
- return m_center[i] + m_extent[i];
- }
-
- MT_Point3
- Lower(
- ) const {
- return m_center - m_extent;
- }
- MT_Point3
- Upper(
- ) const {
- return m_center + m_extent;
- }
-
- MT_Scalar
- Size(
- ) const {
- return MT_max(MT_max(m_extent[0], m_extent[1]), m_extent[2]);
- }
-
- int
- LongestAxis(
- ) const {
- return m_extent.closestAxis();
- }
-
- bool
- IntersectXRay(
- const MT_Point3& xBase
- ) const {
- if (xBase[0] <= Upper(0))
- {
- if (xBase[1] <= Upper(1) && xBase[1] >= Lower(1))
- {
- if (xBase[2] <= Upper(2) && xBase[2] >= Lower(2))
- {
- return true;
- }
- }
- }
- return false;
- }
-
-
-
-
- friend bool intersect(const BBox& a, const BBox& b);
-
-private:
- MT_Point3 m_center;
- MT_Vector3 m_extent;
-};
-
-inline
- bool
-intersect(
- const BBox& a,
- const BBox& b
-) {
- return
- MT_abs(a.m_center[0] - b.m_center[0]) <= a.m_extent[0] + b.m_extent[0] &&
- MT_abs(a.m_center[1] - b.m_center[1]) <= a.m_extent[1] + b.m_extent[1] &&
- MT_abs(a.m_center[2] - b.m_center[2]) <= a.m_extent[2] + b.m_extent[2];
-}
-
-#endif
-
-
diff --git a/intern/csg/intern/CSG_BBoxTree.cpp b/intern/csg/intern/CSG_BBoxTree.cpp
deleted file mode 100644
index 503c3e7f2d4..00000000000
--- a/intern/csg/intern/CSG_BBoxTree.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- SOLID - Software Library for Interference Detection
- Copyright (C) 1997-1998 Gino van den Bergen
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to gino@win.tue.nl,
- or write to:
- Gino van den Bergen
- Department of Mathematics and Computing Science
- Eindhoven University of Technology
- P.O. Box 513, 5600 MB Eindhoven, The Netherlands
-*/
-
-#include "CSG_BBoxTree.h"
-#include <algorithm>
-
-
-using namespace std;
-
-
-BBoxInternal::
-BBoxInternal(
- int n, LeafPtr leafIt
-)
-{
- m_tag = INTERNAL;
- m_bbox.SetEmpty();
-
- int i;
- for (i=0;i<n;i++) {
- m_bbox.Include(leafIt[i].m_bbox);
- }
-}
-// Construct a BBoxInternal from a list of BBoxLeaf nodes.
-// Recursive function that does the longest axis median point
-// fit.
-
-void BBoxTree::
-BuildTree(
- LeafPtr leaves, int numLeaves
-) {
- m_branch = 0;
- m_leaves = leaves;
- m_numLeaves = numLeaves;
- m_internals = new BBoxInternal[numLeaves];
-
- RecursiveTreeBuild(m_numLeaves,m_leaves);
-}
-
- void
-BBoxTree::
-RecursiveTreeBuild(
- int n, LeafPtr leafIt
-){
- m_internals[m_branch] = BBoxInternal(n,leafIt);
- BBoxInternal& aBBox = m_internals[m_branch];
-
- m_branch++;
-
- int axis = aBBox.m_bbox.LongestAxis();
- int i = 0, mid = n;
-
- // split the leaves into two groups those that are < bbox.getCenter()[axis]
- // and those that are >=
- // smart bit about this code is it does the grouping in place.
- while (i < mid)
- {
- if (leafIt[i].m_bbox.Center()[axis] < aBBox.m_bbox.Center()[axis])
- {
- ++i;
- } else {
- --mid;
- swap(leafIt[i], leafIt[mid]);
- }
- }
-
- // all of the nodes were on one side of the box center
- // I'm not sure if this case ever gets reached?
- if (mid == 0 || mid == n)
- {
- mid = n / 2;
- }
-
- if (mid >= 2)
- {
- aBBox.rson = m_internals + m_branch;
- RecursiveTreeBuild(mid,leafIt);
- } else {
- aBBox.rson = leafIt;
- }
- if (n - mid >= 2) {
- aBBox.lson = m_internals + m_branch;
- RecursiveTreeBuild(n - mid, leafIt + mid);
- } else {
- aBBox.lson = leafIt + mid;
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/intern/csg/intern/CSG_BBoxTree.h b/intern/csg/intern/CSG_BBoxTree.h
deleted file mode 100644
index a9013ccf329..00000000000
--- a/intern/csg/intern/CSG_BBoxTree.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/**
- * I've modified some very nice bounding box tree code from
- * Gino van der Bergen's Free Solid Library below. It's basically
- * the same code - but I've hacked out the transformation stuff as
- * I didn't understand it. I've also made it far less elegant!
- *
- */
-
-/*
- SOLID - Software Library for Interference Detection
- Copyright (C) 1997-1998 Gino van den Bergen
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to gino@win.tue.nl,
- or write to:
- Gino van den Bergen
- Department of Mathematics and Computing Science
- Eindhoven University of Technology
- P.O. Box 513, 5600 MB Eindhoven, The Netherlands
-*/
-
-#ifndef _BBOXTREE_H_
-#define _BBOXTREE_H_
-
-#include "CSG_BBox.h"
-#include "MT_Line3.h"
-#include "CSG_IndexDefs.h"
-
-#include <vector>
-
-/**
- * Tree structure
- */
-
-class BBoxNode
-{
-public:
- enum TagType { LEAF, INTERNAL };
-
- BBox m_bbox;
- TagType m_tag;
-};
-
-
-class BBoxLeaf : public BBoxNode
-{
-public:
- int m_polyIndex;
-
- BBoxLeaf() {}
-
- BBoxLeaf(int polyIndex, const BBox& bbox)
- : m_polyIndex(polyIndex)
- {
- m_bbox = bbox;
- m_tag = LEAF;
- }
-
-};
-
-
-typedef BBoxLeaf* LeafPtr;
-typedef BBoxNode* NodePtr;
-
-
-class BBoxInternal : public BBoxNode
-{
-public:
- NodePtr lson;
- NodePtr rson;
-
- BBoxInternal() {}
- BBoxInternal(
- int n, LeafPtr leafIt
- );
-
-};
-
-typedef BBoxInternal* InternalPtr;
-
-
-class BBoxTree
-{
-public :
- BBoxTree() {};
-
- const NodePtr RootNode() const {
- return m_internals;
- }
-
- ~BBoxTree() {
- delete[] m_leaves;
- delete[] m_internals;
- }
-
- // tree takes ownership of the leaves.
- void BuildTree(LeafPtr leaves, int numLeaves);
-
-private :
-
- void RecursiveTreeBuild(
- int n, LeafPtr leafIt
- );
-
- int m_branch;
-
- LeafPtr m_leaves;
- InternalPtr m_internals;
- int m_numLeaves;
-};
-
-
-
-
-
-#endif
-
-
-
-
-
-
diff --git a/intern/csg/intern/CSG_BlenderVProp.h b/intern/csg/intern/CSG_BlenderVProp.h
deleted file mode 100644
index 72cad752c31..00000000000
--- a/intern/csg/intern/CSG_BlenderVProp.h
+++ /dev/null
@@ -1,94 +0,0 @@
-#ifndef CSG_BlenderVProp_H
-#define CSG_BlenderVProp_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-// A vertex property that stores a CSG_IFaceVertexData structure defined
-// in the interface between the CSG module and blender CSG_Interface.h!
-
-#include "CSG_Interface.h"
-#include "MT_Scalar.h"
-
-class BlenderVProp
-{
-public :
- // You must set the interpolation function ptr
- // before using this class.
-
- static CSG_InterpolateUserFaceVertexDataFunc InterpFunc;
-
-private :
-
- CSG_IFaceVertexData m_data;
-
-public :
-
- BlenderVProp(const int& vIndex)
- {
- m_data.m_vertexIndex = vIndex;
- }
-
- BlenderVProp(
- const int& vIndex,
- const BlenderVProp& p1,
- const BlenderVProp& p2,
- const MT_Scalar& epsilon
- ){
- m_data.m_vertexIndex = vIndex;
- InterpFunc(&(p1.m_data),&(p2.m_data),&m_data,epsilon);
- }
-
-
- BlenderVProp(
- ) {};
-
- // Default copy constructor and assignment operator are fine.
-
- // Support conversion to an integer
- ///////////////////////////////////
- operator int(
- ) const {
- return m_data.m_vertexIndex;
- }
-
- // and assignment from an integer.
- //////////////////////////////////
- BlenderVProp&
- operator = (
- int i
- ) {
- m_data.m_vertexIndex = i;
- return *this;
- }
-
- // return a reference to our data
- const CSG_IFaceVertexData& Data() const {
- return m_data;
- }
-
- CSG_IFaceVertexData& Data() {
- return m_data;
- }
-
-
-};
-
-#endif \ No newline at end of file
diff --git a/intern/csg/intern/CSG_BooleanOp.h b/intern/csg/intern/CSG_BooleanOp.h
deleted file mode 100644
index ff293799286..00000000000
--- a/intern/csg/intern/CSG_BooleanOp.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#ifndef CSG_BOOLEANOP_H
-#define CSG_BOOLEANOP_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-#include "CSG_IndexDefs.h"
-#include "CSG_BBoxTree.h"
-
-template <typename CMesh, typename TMesh> class BooleanOp
-{
-public :
-
- // unimplemented
- ////////////////
- BooleanOp();
- BooleanOp(const BooleanOp&);
- BooleanOp& operator = (const BooleanOp&);
-
- //helpers
- /////////
-
- static
- void
- BuildSplitGroup(
- const TMesh& meshA,
- const TMesh& meshB,
- const BBoxTree& treeA,
- const BBoxTree& treeB,
- OverlapTable& aOverlapsB,
- OverlapTable& bOverlapsA
- );
-
- // Split mesh with mesh2, table is an OverlapTable containing the polygons
- // of mesh2 that intersect with polygons of mesh.
- // if preserve is true this function will aim to reduce the number of
- // T-junctions created.
-
- static
- void
- PartitionMesh(
- CMesh & mesh,
- const TMesh & mesh2,
- const OverlapTable& table
- );
-
- // Classify meshB with respect to meshA, uses a BBox tree of meshA
- // to drastically improve speed!
- static
- void
- ClassifyMesh(
- const TMesh& meshA,
- const BBoxTree& aTree,
- CMesh& meshB
- );
-
- static
- void
- ExtractClassification(
- CMesh& meshA,
- TMesh& newMesh,
- int classification,
- bool reverse
- );
-
-
-};
-
-#include "CSG_BooleanOp.inl"
-
-#endif
diff --git a/intern/csg/intern/CSG_BooleanOp.inl b/intern/csg/intern/CSG_BooleanOp.inl
deleted file mode 100644
index 9309d4ffbb5..00000000000
--- a/intern/csg/intern/CSG_BooleanOp.inl
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-#include "CSG_Math.h"
-#include "CSG_BBoxTree.h"
-#include "CSG_TreeQueries.h"
-
-using namespace std;
-
-template <typename CMesh, typename TMesh>
- void
-BooleanOp<CMesh,TMesh>::
-BuildSplitGroup(
- const TMesh& meshA,
- const TMesh& meshB,
- const BBoxTree& treeA,
- const BBoxTree& treeB,
- OverlapTable& aOverlapsB,
- OverlapTable& bOverlapsA
-) {
-
- aOverlapsB = OverlapTable(meshB.Polys().size());
- bOverlapsA = OverlapTable(meshA.Polys().size());
-
- // iterate through the polygons of A and then B
- // and mark each
- TreeIntersector<TMesh>(treeA,treeB,&aOverlapsB,&bOverlapsA,&meshA,&meshB);
-
-}
-
-template <typename CMesh, typename TMesh>
- void
-BooleanOp<CMesh,TMesh>::
-PartitionMesh(
- CMesh & mesh,
- const TMesh & mesh2,
- const OverlapTable& table
-) {
-
- // iterate through the overlap table.
- int i;
-
- MT_Scalar onEpsilon(1e-4);
-
- for (i = 0; i < table.size(); i++)
- {
- if (table[i].size())
- {
- // current list of fragments - initially contains
- // just the to-be-split polygon index
- PIndexList fragments;
- fragments.push_back(i);
-
- // iterate through the splitting polygons.
- int j;
- for (j =0 ; j <table[i].size(); ++j)
- {
- PIndexList newFragments;
-
- // find the splitting plane
- MT_Plane3 splitPlane = mesh2.Polys()[table[i][j]].Plane();
-
- // iterate through the current fragments and split them
- // with the new plane, adding the resulting fragments to
- // the newFragments list.
- int k;
- for (k = 0; k < fragments.size(); ++k)
- {
- int newInFragment;
- int newOutFragment;
-
- CMesh::TGBinder pg1(mesh,fragments[k]);
- TMesh::TGBinder pg2(mesh2,table[i][j]);
-
- const MT_Plane3& fragPlane = mesh.Polys()[fragments[k]].Plane();
-
- if (CSG_PolygonIntersector<CMesh::TGBinder,TMesh::TGBinder >::
- IntersectPolygons(pg1,pg2,fragPlane,splitPlane))
- {
- mesh.SplitPolygon(fragments[k],splitPlane,newInFragment,newOutFragment,onEpsilon);
-
- if (-1 != newInFragment) newFragments.push_back(newInFragment);
- if (-1 != newOutFragment) newFragments.push_back(newOutFragment);
- } else {
- // this fragment was not split by this polygon but it may be split by a subsequent
- // polygon in the list
- newFragments.push_back(fragments[k]);
- }
-
- }
-
- fragments = newFragments;
- }
- }
- }
-}
-
-template <typename CMesh, typename TMesh>
- void
-BooleanOp<CMesh,TMesh>::
-ClassifyMesh(
- const TMesh& meshA,
- const BBoxTree& aTree,
- CMesh& meshB
-) {
-
- // walk through all of the polygons of meshB. Create a
- // ray in the direction of the polygons normal emintaing from the
- // mid point of the polygon
-
- // Do a ray test with all of the polygons of MeshA
- // Find the nearest intersection point and record the polygon index
-
- // If there were no intersections then the ray is outside.
- // If there was an intersection and the dot product of the ray and normal
- // of the intersected polygon from meshA is +ve then we are on the inside
- // else outside.
-
- int i;
- for (i = 0; i < meshB.Polys().size(); i++)
- {
- CMesh::TGBinder pg(meshB,i);
-
- MT_Line3 midPointRay = CSG_Math<CMesh::TGBinder >::PolygonMidPointRay(pg,meshB.Polys()[i].Plane());
-
- MT_Line3 midPointXRay(midPointRay.Origin(),MT_Vector3(1,0,0));
-
- int aPolyIndex(-1);
-
- RayTreeIntersector<TMesh>(aTree,&meshA,midPointXRay,aPolyIndex);
-
- if (-1 != aPolyIndex)
- {
- if (meshA.Polys()[aPolyIndex].Plane().signedDistance(midPointXRay.Origin()) < 0)
- {
- meshB.Polys()[i].Classification()= 1;
- } else {
- meshB.Polys()[i].Classification()= 2;
- }
- } else {
- meshB.Polys()[i].Classification()= 2;
- }
- }
-}
-
-
-template <typename CMesh, typename TMesh>
- void
-BooleanOp<CMesh,TMesh>::
-ExtractClassification(
- CMesh& meshA,
- TMesh& newMesh,
- int classification,
- bool reverse
-){
-
- int i;
- for (i = 0; i < meshA.Polys().size(); ++i)
- {
- CMesh::Polygon& meshAPolygon = meshA.Polys()[i];
- if (meshAPolygon.Classification() == classification)
- {
- newMesh.Polys().push_back(meshAPolygon);
- TMesh::Polygon& newPolygon = newMesh.Polys().back();
-
- if (reverse) newPolygon.Reverse();
-
- // iterate through the vertices of the new polygon
- // and find a new place for them in the new mesh (if they arent already there)
-
- int j;
- for (j=0; j< newPolygon.Size(); j++)
- {
- if (meshA.Verts()[newPolygon[j]].VertexMap() == -1)
- {
- // this is the first time we have visited this vertex
- // copy it over to the new mesh.
- newMesh.Verts().push_back(meshA.Verts()[newPolygon[j]]);
- // and record it's position in the new mesh for the next time we visit it.
- meshA.Verts()[newPolygon[j]].VertexMap() = newMesh.Verts().size() -1;
- }
- newPolygon.VertexProps(j) = meshA.Verts()[newPolygon[j]].VertexMap();
- }
- }
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/intern/csg/intern/CSG_CVertex.h b/intern/csg/intern/CSG_CVertex.h
deleted file mode 100644
index fd0a7b098b5..00000000000
--- a/intern/csg/intern/CSG_CVertex.h
+++ /dev/null
@@ -1,104 +0,0 @@
-#ifndef CSG_CVertex_H
-#define CSG_CVertex_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-#include <algorithm>
-#include "CSG_IndexDefs.h"
-#include "CSG_Vertex.h"
-// This class extends an existing vertex by connecting
-// them with their polygons through the PIndexList member.
-//
-// This extra information allows us to perform local
-// mesh topology queries
-//
-// These queries are availble through the ConnectedMesh class.
-
-class CVertex : public VertexBase
-{
-private :
-
- // polygons using this vertex
- PIndexList m_polygons;
-
-public :
-
- CVertex()
- :VertexBase(),m_polygons()
- {
- };
-
- // have to change VertexBase and all functions to
- // use Pos() rather than m_pos;
-
- CVertex(const VertexBase& vertex)
- :VertexBase(vertex),m_polygons()
- {}
-
- // Value type model
- ///////////////////
- CVertex(const CVertex& other)
- : VertexBase(other), m_polygons(other.m_polygons)
- {}
-
- CVertex& operator = (const CVertex& other)
- {
- m_pos = other.Pos();
- m_vertexMap = other.m_vertexMap;
- m_polygons = other.m_polygons;
-
- return *this;
- }
-
-
- CVertex& operator = (const VertexBase& other)
- {
- m_pos= other.Pos();
- return *this;
- }
-
-
- ~CVertex(){};
-
- // Our special connected vertex functions.
- //////////////////////////////////////////
-
- const PIndexList& Polys() const { return m_polygons;}
- PIndexList& Polys() { return m_polygons;}
-
- int & operator[] (const int & i) { return m_polygons[i];}
-
- const int & operator[] (const int& i) const { return m_polygons[i];}
-
- void AddPoly(int polyIndex) {m_polygons.push_back(polyIndex);}
-
- void RemovePolygon(int polyIndex)
- {
- PIndexIt foundIt = std::find(m_polygons.begin(),m_polygons.end(),polyIndex);
- if (foundIt != m_polygons.end()) {
- std::swap(m_polygons.back(), *foundIt);
- m_polygons.pop_back();
- }
- }
-};
-
-
-#endif
diff --git a/intern/csg/intern/CSG_ConnectedMesh.h b/intern/csg/intern/CSG_ConnectedMesh.h
deleted file mode 100644
index 6cf73ef2240..00000000000
--- a/intern/csg/intern/CSG_ConnectedMesh.h
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef CSG_ConnectedMesh_H
-#define CSG_ConnectedMesh_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-#include "CSG_GeometryBinder.h"
-#include "MT_Plane3.h"
-
-template <typename TMesh> class ConnectedMeshWrapper
-{
-public :
-
- typedef TMesh::Polygon Polygon;
- typedef TMesh::Vertex Vertex;
-
- typedef TMesh::Polygon::TVProp VProp;
-
- typedef TMesh::VLIST VLIST;
- typedef TMesh::PLIST PLIST;
-
- typedef PolygonGeometry<ConnectedMeshWrapper> TGBinder;
-
- typedef ConnectedMeshWrapper<TMesh> MyType;
-
-private :
- TMesh& m_mesh;
-
- unsigned int m_uniqueEdgeTestId;
-
-public :
-
- // Mesh Template interface
- //////////////////////////
- VLIST& Verts() {return m_mesh.Verts();}
- const VLIST& Verts() const {return m_mesh.Verts();}
-
- PLIST& Polys() {return m_mesh.Polys();}
- const PLIST& Polys() const {return m_mesh.Polys();}
-
- // Mesh Wrapper functions
- /////////////////////////
-
- ConnectedMeshWrapper(TMesh& mesh):
- m_mesh(mesh),m_uniqueEdgeTestId(0) {};
-
- void BuildVertexPolyLists();
-
- void DisconnectPolygon(int polyIndex);
-
- void ConnectPolygon(int polyIndex);
-
- //return the polygons neibouring the given edge.
- void EdgePolygons(int v1, int v2, PIndexList& polys);
-
- void InsertVertexAlongEdge(int v1,int v2, const VProp& prop);
-
- void
- SplitPolygon(
- const int p1Index,
- const MT_Plane3& plane,
- int& inPiece,
- int& outPiece,
- const MT_Scalar onEpsilon
- );
-
- ~ConnectedMeshWrapper(){};
-};
-
-#include "CSG_ConnectedMeshWrapper.inl"
-
-#endif
-
-
-
-
-
-
diff --git a/intern/csg/intern/CSG_ConnectedMeshWrapper.inl b/intern/csg/intern/CSG_ConnectedMeshWrapper.inl
deleted file mode 100644
index 5d6cc11cc48..00000000000
--- a/intern/csg/intern/CSG_ConnectedMeshWrapper.inl
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-#include <algorithm>
-#include <iterator>
-#include "CSG_SplitFunction.h"
-
-// Define functors things that bind a function to an object,
-// for the templated split polygon code.
-
-template <typename CMesh> class SplitFunctionBindor
-{
-private :
- CMesh& m_mesh;
-
-public :
-
- SplitFunctionBindor(CMesh& mesh):m_mesh(mesh) {};
-
- void DisconnectPolygon(int polyIndex){
- m_mesh.DisconnectPolygon(polyIndex);
- }
-
- void ConnectPolygon(int polygonIndex) {
- m_mesh.ConnectPolygon(polygonIndex);
- }
-
- void InsertVertexAlongEdge(int lastIndex,int newIndex,const CMesh::VProp& prop) {
- m_mesh.InsertVertexAlongEdge(lastIndex,newIndex,prop);
- }
-
- ~SplitFunctionBindor(){};
-};
-
-
-template <typename TMesh>
- void
-ConnectedMeshWrapper<TMesh>::
-BuildVertexPolyLists(
-) {
- int i;
- for (i=0; i < Polys().size(); i++)
- {
- ConnectPolygon(i);
- }
-}
-
-template <typename TMesh>
- void
-ConnectedMeshWrapper<TMesh>::
-DisconnectPolygon(
- int polyIndex
-){
- const Polygon& poly = Polys()[polyIndex];
-
- int j;
- for (j=0;j<poly.Verts().size(); j++)
- {
- Verts()[poly[j]].RemovePolygon(polyIndex);
- }
-}
-
-template <typename TMesh>
- void
-ConnectedMeshWrapper<TMesh>::
-ConnectPolygon(
- int polyIndex
-){
- const Polygon& poly = Polys()[polyIndex];
-
- int j;
- for (j=0;j<poly.Verts().size(); j++)
- {
- Verts()[poly[j]].AddPoly(polyIndex);
- }
-}
-
-template <typename TMesh>
- void
-ConnectedMeshWrapper<TMesh>::
-EdgePolygons(
- int v1,
- int v2,
- PIndexList& polys
-) {
- ++m_uniqueEdgeTestId;
-
- Vertex& vb1 = Verts()[v1];
- int i;
- for (i=0;i < vb1.Polys().size(); ++i)
- {
- Polys()[vb1[i]].Classification() = m_uniqueEdgeTestId;
- }
-
- Vertex& vb2 = Verts()[v2];
- int j;
- for (j=0;j < vb2.Polys().size(); ++j)
- {
- if (Polys()[vb2[j]].Classification() == m_uniqueEdgeTestId)
- {
- polys.push_back(vb2[j]);
- }
- }
-}
-
-template <typename TMesh>
- void
-ConnectedMeshWrapper<TMesh>::
-InsertVertexAlongEdge(
- int v1,
- int v2,
- const VProp& prop
-) {
-
- PIndexList npolys;
- EdgePolygons(v1,v2,npolys);
-
- // iterate through the neighbouting polygons of
- // this edge and insert the vertex into the polygon
-
- int newVertex = int(prop);
-
- int i;
- for (i=0;i < npolys.size(); i++)
- {
- // find the first vertex index in this polygon
- Polygon::TVPropList& polyVerts = Polys()[npolys[i]].Verts();
-
- Polygon::TVPropIt v1pos = std::find(polyVerts.begin(),polyVerts.end(),v1);
-
- // this should never be false!
- if (v1pos != polyVerts.end())
- {
- // v2 must be either side of this pos
- Polygon::TVPropIt prevPos = (v1pos == polyVerts.begin()) ? polyVerts.end()-1 : v1pos-1;
- Polygon::TVPropIt nextPos = (v1pos == polyVerts.end()-1) ? polyVerts.begin() : v1pos+1;
-
- if (*prevPos == v2) {
- polyVerts.insert(v1pos,prop);
- } else
- if (*nextPos == v2) {
- polyVerts.insert(nextPos,prop);
- } else {
- //assert(false);
- }
-
- Verts()[newVertex].AddPoly(npolys[i]);
- } else {
- assert(false);
- }
- }
-}
-
-
-template <typename TMesh>
- void
-ConnectedMeshWrapper<TMesh>::
-SplitPolygon(
- const int p1Index,
- const MT_Plane3& plane,
- int& inPiece,
- int& outPiece,
- const MT_Scalar onEpsilon
-){
-
- SplitFunctionBindor<MyType> functionBindor(*this);
-
- SplitFunction<MyType,SplitFunctionBindor<MyType> > splitFunction(*this,functionBindor);
- splitFunction.SplitPolygon(p1Index,plane,inPiece,outPiece,onEpsilon);
-}
-
-#if 0
-template <class TPolygon, class TVertex>
- void
-Mesh::
-printMesh(
- std::ostream& stream
-) {
-
- int i;
- for (i =0; i < m_polys.size(); i++)
- {
- std::ostream_iterator<int> streamIt(stream," ");
- std::copy(m_polys[i].Verts().begin(),m_polys[i].Verts().end(),streamIt);
- stream << "\n";
- }
-}
-
-#endif
-
-
-
-
diff --git a/intern/csg/intern/CSG_GeometryBinder.h b/intern/csg/intern/CSG_GeometryBinder.h
deleted file mode 100644
index 2977ac65971..00000000000
--- a/intern/csg/intern/CSG_GeometryBinder.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef CSG_GEOMETRY_BINDER_H
-#define CSG_GEOMETRY_BINDER_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-// This class binds the geometry of a polygon
-// to the polygon itself it provides just one
-// operator [int i] that returns the vertex position
-// of the ith vertex in the polygon.
-
-// Its a model of a geometry binder primarily used by the CSG_Math
-// template class to compute geometric information about a mesh.
-
-#include "MT_Point3.h"
-
-
-template <typename TMesh> class PolygonGeometry
-{
-public :
-
- typedef typename TMesh::Polygon TPolygon;
-
- PolygonGeometry(const TMesh& mesh, int pIndex)
- : m_poly(mesh.Polys()[pIndex]),m_mesh(mesh)
- {};
-
- PolygonGeometry(const TMesh& mesh,const TPolygon& poly)
- : m_poly(poly),m_mesh(mesh)
- {};
-
- const MT_Point3& operator[] (int i) const {
- return m_mesh.Verts()[m_poly[i]].Pos();
- };
-
- int Size() const { return m_poly.Size();}
-
- ~PolygonGeometry(){};
-
-private :
-
- PolygonGeometry(const PolygonGeometry& other) {};
- PolygonGeometry& operator = (PolygonGeometry& other) { return *this;}
-
- const TMesh& m_mesh;
- const TPolygon& m_poly;
-
-};
-
-#endif
-
-
-
-
-
diff --git a/intern/csg/intern/CSG_IndexDefs.h b/intern/csg/intern/CSG_IndexDefs.h
deleted file mode 100644
index 2e1e05a5eb4..00000000000
--- a/intern/csg/intern/CSG_IndexDefs.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef CSG_INDEXDEFS_H
-#define CSG_INDEXDEFS_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-//typdefs for lists and things in the CSG library
-
-#include <vector>
-
-typedef std::vector<int> PIndexList;
-typedef PIndexList::iterator PIndexIt;
-typedef PIndexList::const_iterator const_PIndexIt;
-
-typedef std::vector<int> VIndexList;
-typedef VIndexList::iterator VIndexIt;
-typedef VIndexList::const_iterator const_VIndexIt;
-
-typedef std::vector< PIndexList > OverlapTable;
-
-
-
-#endif
-
-
diff --git a/intern/csg/intern/CSG_Math.h b/intern/csg/intern/CSG_Math.h
deleted file mode 100644
index 0c41e3d63ae..00000000000
--- a/intern/csg/intern/CSG_Math.h
+++ /dev/null
@@ -1,152 +0,0 @@
-#ifndef __CSG_MATH_H
-#define __CSG_MATH_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-#include "MT_Plane3.h"
-#include "MT_Matrix3x3.h"
-#include "MT_Line3.h"
-#include "CSG_BBox.h"
-
-// useful geometry functions.
-/////////////////////////////
-
-const int cofacTable[3][2] = {{1,2},{0,2},{0,1}};
-
-class CSG_Geometry
-{
-public :
-
- static bool Intersect(
- const MT_Plane3& p1,
- const MT_Plane3& p2,
- MT_Line3& output
- );
-
- // Return intersection of line1 and line 2 in the plane formed by the given
- // standard axis. Intersection l1Param is the intersection parameter of line1.
- static bool Intersect2D(
- const MT_Line3& l1,
- const MT_Line3& l2,
- int majAxis,
- MT_Scalar& l1Param
- );
-
- static bool Intersect2DBoundsCheck(
- const MT_Line3& l1,
- const MT_Line3& l2,
- int majAxis,
- MT_Scalar& l1Param,
- MT_Scalar& l2Param
- );
-
- static bool Intersect2DNoBoundsCheck(
- const MT_Line3& l1,
- const MT_Line3& l2,
- int majAxis,
- MT_Scalar& l1Param,
- MT_Scalar& l2Param
- );
-
- static int ComputeClassification(
- const MT_Scalar& distance,
- const MT_Scalar& epsilon
- );
-};
-
-// The template parameter TGBinder is a model of a Geometry Binder concept
-// see CSG_GeometryBinder.h for an example.
-
-template <typename TGBinder> class CSG_Math
-{
-public :
-
- static bool IntersectPolyWithLine2D(
- const MT_Line3& l,
- const TGBinder& p1,
- const MT_Plane3& plane,
- MT_Scalar& a,
- MT_Scalar& b
- );
-
- static bool InstersectPolyWithLine3D(
- const MT_Line3& l,
- const TGBinder& p1,
- const MT_Plane3& plane,
- MT_Scalar& a
- );
-
- static bool PointInPolygonTest3D(
- const TGBinder& p1,
- const MT_Plane3& plane,
- const MT_Point3& origin,
- const MT_Point3& pointOnPlane
- );
-
- // Return the mid-point of the given polygon index.
- static MT_Point3 PolygonMidPoint(
- const TGBinder& p1
- );
-
- static MT_Line3 PolygonMidPointRay(
- const TGBinder& p1,
- const MT_Plane3& plane
- );
-
- static MT_Plane3 ComputePlane(
- const TGBinder &p1
- );
-
- // Return a bounding box of the given polygon index.
- static BBox FitBBox(
- const TGBinder& p1
- );
-
- // Return which side of the polygon the plane is on.
- // 0 == 0n
- // 1 == in
- // 2 == out
- // 3 == Straddle
- static int WhichSide(
- const TGBinder& p1,
- const MT_Plane3& plane1
- );
-
-};
-
-template <class TGBinderA, class TGBinderB> class CSG_PolygonIntersector
-{
-public :
-
- static bool IntersectPolygons (
- const TGBinderA& p1,
- const TGBinderB& p2,
- const MT_Plane3& plane1,
- const MT_Plane3& plane2
- );
-
-};
-
-
-#include "CSG_Math.inl"
-
-#endif
-
diff --git a/intern/csg/intern/CSG_Math.inl b/intern/csg/intern/CSG_Math.inl
deleted file mode 100644
index 73483ea41d6..00000000000
--- a/intern/csg/intern/CSG_Math.inl
+++ /dev/null
@@ -1,362 +0,0 @@
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-#include "CSG_Math.h"
-#include "MT_minmax.h"
-#include "MT_Point2.h"
-#include "MT_Vector2.h"
-#include "MT_Plane3.h"
-
-#include <vector>
-
-using namespace std;
-
-inline bool CSG_Geometry::Intersect(
- const MT_Plane3& p1,
- const MT_Plane3& p2,
- MT_Line3& output
-) {
- MT_Matrix3x3 mat;
- mat[0] = p1.Normal();
- mat[1] = p2.Normal();
- mat[2] = mat[0].cross(mat[1]);
-
- if (mat[2].fuzzyZero())
- {
- return false;
- }
-
- MT_Vector3 aPoint(-p1.Scalar(),-p2.Scalar(),0);
-
- output = MT_Line3(MT_Point3(0,0,0) + mat.inverse()*aPoint ,mat[2]);
-
- assert(MT_fuzzyZero(p1.signedDistance(output.Origin())));
- assert(MT_fuzzyZero(p2.signedDistance(output.Origin())));
-
-
- return true;
-}
-
-inline bool CSG_Geometry::Intersect2DNoBoundsCheck(
- const MT_Line3& l1,
- const MT_Line3& l2,
- int majAxis,
- MT_Scalar& l1Param,
- MT_Scalar& l2Param
-){
- int ind1 = cofacTable[majAxis][0];
- int ind2 = cofacTable[majAxis][1];
-
- MT_Scalar Zx = l2.Origin()[ind1] - l1.Origin()[ind1];
- MT_Scalar Zy = l2.Origin()[ind2] - l1.Origin()[ind2];
-
- MT_Scalar det = l1.Direction()[ind1]*l2.Direction()[ind2] -
- l2.Direction()[ind1]*l1.Direction()[ind2];
-
- if (MT_fuzzyZero(det))
- {
- return false;
- }
-
- l1Param = (l2.Direction()[ind2]*Zx - l2.Direction()[ind1]*Zy)/det;
- l2Param = -(-l1.Direction()[ind2]*Zx + l1.Direction()[ind1]*Zy)/det;
-
- return true;
-}
-
-
-inline bool CSG_Geometry::Intersect2DBoundsCheck(
- const MT_Line3& l1,
- const MT_Line3& l2,
- int majAxis,
- MT_Scalar& l1Param,
- MT_Scalar& l2Param
-) {
-
- bool isect = Intersect2DNoBoundsCheck(l1,l2,majAxis,l1Param,l2Param);
- if (!isect) return false;
-
- return l1.IsParameterOnLine(l1Param) && l2.IsParameterOnLine(l2Param);
-}
-
-
-//IMplementation of CSG_Math
-////////////////////////////
-
-template<typename TGBinder>
-inline bool CSG_Math<TGBinder>::IntersectPolyWithLine2D(
- const MT_Line3& l,
- const TGBinder& p1,
- const MT_Plane3& plane,
- MT_Scalar& a,
- MT_Scalar& b
-){
- int majAxis = plane.Normal().closestAxis();
- int lastInd = p1.Size()-1;
-
- b = (-MT_INFINITY);
- a = (MT_INFINITY);
-
- MT_Scalar isectParam(0);
- MT_Scalar isectParam2(0);
-
- int i;
- int j = lastInd;
- int isectsFound(0);
- for (i=0;i<=lastInd; j=i,i++ )
- {
- MT_Line3 testLine(p1[j],p1[i]);
- if ( CSG_Geometry::Intersect2DBoundsCheck(l,testLine,majAxis,isectParam,isectParam2))
- {
- ++isectsFound;
- b = MT_max(isectParam,b);
- a = MT_min(isectParam,a);
- }
- }
-
- return (isectsFound > 0);
-}
-
-template<typename TGBinder>
-inline bool CSG_Math<TGBinder>::InstersectPolyWithLine3D(
- const MT_Line3& l,
- const TGBinder& p1,
- const MT_Plane3& plane,
- MT_Scalar& a
-){
- // First compute intersection parameter t
- MT_Scalar determinant = l.Direction().dot(plane.Normal());
-
- // they are coplanar but we're not interested in that right?
- if (MT_fuzzyZero(determinant)) return false;
-
- a = -plane.Scalar() - plane.Normal().dot(l.Origin());
- a /= determinant;
-
- // intersection point is behind the ray.
- if (a <= 0 ) return false;
-
-
- // check if line is bounded and if t lies in bounds.
- if (!l.IsParameterOnLine(a)) return false;
-
- // calculate the point on the plane
- MT_Point3 pointOnPlane = l.Origin() + l.Direction()*a;
-
- assert(MT_fuzzyZero(plane.signedDistance(pointOnPlane)));
-
- // make sure the intersection point is within the polygon
- return PointInPolygonTest3D(p1,plane,l.Origin(),pointOnPlane);
-}
-
-
-
-template<typename TGBinder>
-inline bool CSG_Math<TGBinder>::PointInPolygonTest3D(
- const TGBinder& p1,
- const MT_Plane3& plane,
- const MT_Point3& origin,
- const MT_Point3& pointOnPlane
-) {
- // Form planes with the edges of the polygon and the origin.
- // make sure that origin is inside all these planes.
-
- // ONe small detail we have to first workout which side the origin
- // is wrt the plane of the polygon.
-
- bool discardSign = plane.signedDistance(origin) < 0 ? true : false;
-
- const int polySize = p1.Size();
-
- MT_Point3 lastPoint = p1[polySize-1];
-
- int i;
- for (i=0;i<polySize; ++i)
- {
- const MT_Point3& aPoint = p1[i];
-
- MT_Plane3 testPlane(origin,lastPoint,aPoint);
- if ((testPlane.signedDistance(pointOnPlane) <= 0) == discardSign)
- {
- return false;
- }
- lastPoint = aPoint;
- }
- return true;
-}
-
-// return 0 = on
-// return 1 = in
-// return 2 = out
-
-inline int CSG_Geometry::ComputeClassification(
- const MT_Scalar& distance,
- const MT_Scalar& epsilon
-) {
- if (MT_abs(distance) < epsilon)
- {
- return 0;
- } else {
- return distance < 0 ? 1 : 2;
- }
-}
-
-// Return the mid-point of the given polygon index.
-template <typename TGBinder>
-inline MT_Point3 CSG_Math<TGBinder>::PolygonMidPoint(
- const TGBinder& p1
-){
-
- MT_Point3 midPoint(0,0,0);
-
- int i;
- for (i=0; i < p1.Size(); i++)
- {
- midPoint += p1[i];
- }
-
- return MT_Point3(midPoint[0]/i,midPoint[1]/i,midPoint[2]/i);
-}
-
-template <typename TGBinder>
-int CSG_Math<TGBinder>::WhichSide(
- const TGBinder& p1,
- const MT_Plane3& plane1
-){
-
- int output = 0;
- int i;
- for (i=0; i<p1.Size(); i++)
- {
- MT_Scalar signedDistance = plane1.signedDistance(p1[i]);
- if (!MT_fuzzyZero(signedDistance))
- {
- signedDistance < 0 ? (output |= 1) : (output |=2);
- }
- }
- return output;
-
-}
-
-
-template <typename TGBinder>
-inline MT_Line3 CSG_Math<TGBinder>::PolygonMidPointRay(
- const TGBinder& p1,
- const MT_Plane3& plane
-){
- return MT_Line3(PolygonMidPoint(p1),plane.Normal(),true,false);
-}
-
-template <typename TGBinder>
-inline MT_Plane3 CSG_Math<TGBinder>::ComputePlane(
- const TGBinder &poly
-){
- assert(poly.Size() >= 3);
- MT_Point3 plast(poly[poly.Size()-1]);
- MT_Point3 pivot;
- MT_Vector3 edge;
- int j;
- for (j=0; j < poly.Size(); j++)
- {
- pivot = poly[j];
- edge = pivot - plast;
- if (!edge.fuzzyZero()) break;
- }
-
- for (; j < poly.Size(); j++)
- {
- MT_Vector3 v2 = poly[j] - pivot;
- MT_Vector3 v3 = edge.cross(v2);
- if (!v3.fuzzyZero())
- {
- return MT_Plane3(v3,pivot);
- }
- }
-
- return MT_Plane3();
-
-}
-
-template <typename TGBinder>
-inline BBox CSG_Math<TGBinder>::FitBBox(
- const TGBinder& p1
-) {
- BBox bbox;
- bbox.SetEmpty();
-
- for (int i = 0; i < p1.Size(); ++i) {
- bbox.Include(p1[i]);
- }
- return bbox;
-}
-
-// we now have enough machinary to intersect 3d polygons
-// Compute line of intersect
-// Intersect line with each edge in PolygonB record min and max intersection parameters
-// Do same for PolygonB. If range of intersections overlap then polys overlap.
-
-// Does not yet deal with 2d case.
-
-template<typename TGBinderA, typename TGBinderB>
-inline bool CSG_PolygonIntersector<TGBinderA,TGBinderB>::IntersectPolygons (
- const TGBinderA& p1,
- const TGBinderB& p2,
- const MT_Plane3& plane1,
- const MT_Plane3& plane2
-){
- MT_Line3 intersectLine;
- if (!CSG_Geometry::Intersect(plane1,plane2,intersectLine))
- {
- // parrallel planes
- return false;
- }
- // check intersection of polygons with intersectLine
- MT_Scalar p1A,p1B;
- MT_Scalar p2A,p2B;
- if (
- !CSG_Math<TGBinderA>::IntersectPolyWithLine2D(intersectLine,p1,plane1,p1A,p1B) ||
- !CSG_Math<TGBinderB>::IntersectPolyWithLine2D(intersectLine,p2,plane2,p2A,p2B)
- ) {
- return false;
- }
-
- // see if intersections overlap.
-
- MT_Scalar maxOMin = MT_max(p1A,p2A);
- MT_Scalar minOMax = MT_min(p1B,p2B);
-
- return (maxOMin <= minOMax);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/intern/csg/intern/CSG_Mesh.h b/intern/csg/intern/CSG_Mesh.h
deleted file mode 100644
index bd687824484..00000000000
--- a/intern/csg/intern/CSG_Mesh.h
+++ /dev/null
@@ -1,66 +0,0 @@
-#ifndef __MESH_H
-#define __MESH_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-#include "CSG_GeometryBinder.h"
-#include <vector>
-
-// Simple vertex polygon container class
-//--------------------------------------
-
-template <typename TPolygon, typename TVertex> class Mesh
-{
-public :
- typedef std::vector<TVertex> VLIST;
- typedef std::vector<TPolygon> PLIST;
-
- typedef TPolygon Polygon;
- typedef TVertex Vertex;
-
- typedef PolygonGeometry<Mesh> TGBinder;
-
-private :
-
- VLIST m_verts;
- PLIST m_polys;
-
- MT_Point3 m_bBoxMin;
- MT_Point3 m_bBoxMax;
-
-
-public :
-
- Mesh():
- m_verts(),
- m_polys()
- {};
-
- VLIST& Verts() {return m_verts;}
- const VLIST& Verts() const {return m_verts;}
-
- PLIST& Polys() {return m_polys;}
- const PLIST& Polys() const {return m_polys;}
-
- ~Mesh() {}
-};
-
-#endif
diff --git a/intern/csg/intern/CSG_MeshCopier.h b/intern/csg/intern/CSG_MeshCopier.h
deleted file mode 100644
index 4acf4440df6..00000000000
--- a/intern/csg/intern/CSG_MeshCopier.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef CSG_MeshCopier_H
-#define CSG_MeshCopier_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-
-template <typename MeshA, typename MeshB> class MeshCopier
-{
-public :
-
- static void Copy(const MeshA& source, MeshB& output)
- {
- int vertexNum = source.Verts().size();
- int polyNum = source.Polys().size();
-
- output.Verts() = MeshB::VLIST(vertexNum);
- output.Polys() = MeshB::PLIST(polyNum);
-
- std::copy(source.Verts().begin(),source.Verts().end(),output.Verts().begin());
- std::copy(source.Polys().begin(),source.Polys().end(),output.Polys().begin());
-
- }
-
-};
-
-#endif
-
diff --git a/intern/csg/intern/CSG_MeshWrapper.h b/intern/csg/intern/CSG_MeshWrapper.h
deleted file mode 100644
index b557dde37c9..00000000000
--- a/intern/csg/intern/CSG_MeshWrapper.h
+++ /dev/null
@@ -1,110 +0,0 @@
-#ifndef CSG_MESH_WRAPPER_H
-#define CSG_MESH_WRAPPER_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-// This class wraps a mesh providing
-// simple mesh functions required by the CSG library.
-// TMesh is a model of a mesh and as such should have the
-// following public typedefs and functions
-//
-// TMesh::Vertex the vertex type
-// TMesh::Polygon the polygon type.
-// TMesh::VLIST an stl container of Vertex objects
-// TMesh::PLIST an stl container of Polygon objects
-//
-// VLIST& Verts();
-// const VLIST& Verts();
-//
-// PLIST& Polys();
-// const PLIST& Polys();
-
-#include "CSG_GeometryBinder.h"
-#include "MT_Transform.h"
-#include "CSG_BBox.h"
-
-#include <vector>
-
-template <typename TMesh> class MeshWrapper
-{
-public :
-
- typedef TMesh::Polygon Polygon;
- typedef TMesh::Vertex Vertex;
-
- typedef TMesh::VLIST VLIST;
- typedef TMesh::PLIST PLIST;
-
- typedef PolygonGeometry<MeshWrapper> TGBinder;
-
- typedef MeshWrapper<TMesh> MyType;
-
-private :
- TMesh& m_mesh;
-
-public :
-
- // Mesh Template interface
- //////////////////////////
-
- VLIST& Verts() {return m_mesh.Verts();}
- const VLIST& Verts() const {return m_mesh.Verts();}
-
- PLIST& Polys() {return m_mesh.Polys();}
- const PLIST& Polys() const {return m_mesh.Polys();}
-
- // Mesh Wrapper functions
- /////////////////////////
-
- MeshWrapper(TMesh& mesh)
- : m_mesh(mesh)
- {}
-
- void ComputePlanes();
-
- void BurnTransform(const MT_Transform& t);
-
- BBox ComputeBBox() const;
-
- // Triangulate this mesh - does not preserve vertex->polygon information.
- void Triangulate();
-
- // Split the polygon at position p1Index in the mesh mesh1 into 2 pieces.
- // Remove the polygon p1 and add the 2 pieces (along with the 2 new vertices)
- // to the mesh. Returns the index of the 2 new pieces in the mesh.(either of [but never both] which can be
- // -1 if there was nothing to split.
-
- void SplitPolygon(
- const int p1Index,
- const MT_Plane3& plane,
- int& inPiece,
- int& outPiece,
- const MT_Scalar onEpsilon
- );
-
-
- ~MeshWrapper(){};
-
-};
-
-#include "CSG_MeshWrapper.inl"
-
-#endif \ No newline at end of file
diff --git a/intern/csg/intern/CSG_MeshWrapper.inl b/intern/csg/intern/CSG_MeshWrapper.inl
deleted file mode 100644
index 7a9a141e92a..00000000000
--- a/intern/csg/intern/CSG_MeshWrapper.inl
+++ /dev/null
@@ -1,150 +0,0 @@
-// Implementation of MeshWrapper template class.
-////////////////////////////////////////////////
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-#include "CSG_Math.h"
-#include "CSG_Triangulate.h"
-#include "CSG_SplitFunction.h"
-
-template <typename TMesh>
-void MeshWrapper<TMesh>::ComputePlanes()
-{
- PLIST& polyList = Polys();
-
- int i;
- for (i=0;i < polyList.size(); i++)
- {
- TGBinder binder(m_mesh,i);
- polyList[i].SetPlane(CSG_Math<TGBinder>::ComputePlane(binder));
- }
-}
-
-template <typename TMesh>
-void MeshWrapper<TMesh>::BurnTransform(const MT_Transform& t)
-{
- VLIST& vertexList = Verts();
-
- int i;
- for (i=0;i<vertexList.size(); i++)
- {
- vertexList[i].Pos() = t * vertexList[i].Pos();
- }
- ComputePlanes();
-
-}
-
-template <typename TMesh>
-BBox MeshWrapper<TMesh>::ComputeBBox() const
-{
- const VLIST& vertexList = Verts();
-
- BBox bbox;
- bbox.SetEmpty();
-
- int i;
- for (i=0;i<vertexList.size(); i++)
- {
- bbox.Include(vertexList[i].Pos());
- }
- return bbox;
-
-}
-
-
-template <typename TMesh>
-void MeshWrapper<TMesh>::Triangulate()
-{
- vector<Polygon> newPolys;
-
- CSG_Triangulate<TGBinder> triangulator;
- int i;
- for (i=0; i< Polys().size(); ++i)
- {
- TGBinder pg(m_mesh,i);
- const Polygon& poly = Polys()[i];
-
- if (pg.Size() >= 4)
- {
- VIndexList triangleList;
-
- if (triangulator.Process(pg,poly.Plane(),triangleList))
- {
-
- // translate the triangle list into the real vertex properties
- int tSize = triangleList.size();
- Polygon::TVPropList triangleProps(tSize);
-
- int j;
- for (j=0; j < tSize; j++)
- {
- triangleProps[j] = poly.VertexProps(triangleList[j]);
- }
-
- // iterate through the new triangles
- for (j=0; j < tSize; j+=3)
- {
- // copy the polygon
- newPolys.push_back(poly);
- newPolys.back().Verts().clear();
-
- // copy the relevant triangle indices
- newPolys.back().Verts().assign(triangleProps.begin() + j,triangleProps.begin() + j +3);
- }
-
- }
- } else {
- if (pg.Size() >= 3) {
- newPolys.push_back(poly);
- }
- }
- }
-
- // replace our polygons with the new ones.
- Polys() = newPolys;
-};
-
-template<typename TMesh>
-void MeshWrapper<TMesh>::SplitPolygon(
- const int p1Index,
- const MT_Plane3& plane,
- int& inPiece,
- int& outPiece,
- const MT_Scalar onEpsilon
-){
-
- DefaultSplitFunctionBindor<TMesh::Polygon::TVProp> defaultSplitFunction;
-
- SplitFunction<MyType,DefaultSplitFunctionBindor<TMesh::Polygon::TVProp> > splitFunction(*this,defaultSplitFunction);
- splitFunction.SplitPolygon(p1Index,plane,inPiece,outPiece,onEpsilon);
-
-}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/intern/csg/intern/CSG_Polygon.h b/intern/csg/intern/CSG_Polygon.h
deleted file mode 100644
index 8332977da71..00000000000
--- a/intern/csg/intern/CSG_Polygon.h
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef __POLYGON_H
-#define __POLYGON_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-#include "CSG_IndexDefs.h"
-
-#include <algorithm>
-#include "MT_Plane3.h"
-#include "MT_Point3.h"
-
-template <typename AVProp, typename AFProp> class PolygonBase
-{
-public :
-
- // The per vertex properties
- typedef AVProp TVProp;
-
- // The per face properties
- typedef AFProp TFProp;
-
- typedef std::vector<TVProp> TVPropList;
- typedef TVPropList::iterator TVPropIt;
-
- // Functions required by the CSG library
- ////////////////////////////////////////
-
- PolygonBase():m_fProp(){}
-
- const TVPropList& Verts() const { return m_verts;}
- TVPropList& Verts() { return m_verts;}
-
- int Size() const { return m_verts.size();}
-
- int operator[](int i) const {return m_verts[i];}
-
- const TVProp& VertexProps(int i) const { return m_verts[i];}
- TVProp& VertexProps(int i) { return m_verts[i];}
-
- void SetPlane(const MT_Plane3& plane) { m_plane = plane;}
-
- const MT_Plane3& Plane() const { return m_plane;}
- MT_Vector3 Normal() const { return m_plane.Normal();}
-
- int & Classification() { return m_classification;}
- const int& Classification() const { return m_classification;}
-
- // Reverse this polygon.
- void Reverse()
- {
- std::reverse(m_verts.begin(),m_verts.end());
- m_plane.Invert();
- }
-
- // Our functions
- ////////////////
-
- TFProp& FProp(){ return m_fProp;}
- const TFProp& FProp() const { return m_fProp;}
-
- ~PolygonBase() {}
-
-private :
-
- TVPropList m_verts;
- MT_Plane3 m_plane;
-
- TFProp m_fProp;
-
- // gross waste of bits! 1 = in, 2 = out;
- int m_classification;
-
-};
-
-#endif \ No newline at end of file
diff --git a/intern/csg/intern/CSG_SplitFunction.h b/intern/csg/intern/CSG_SplitFunction.h
deleted file mode 100644
index 70929a3d4ec..00000000000
--- a/intern/csg/intern/CSG_SplitFunction.h
+++ /dev/null
@@ -1,188 +0,0 @@
-#ifndef CCG_SplitFunction_H
-#define CCG_SplitFunction_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-// This class contains the all important split function.
-// It's a bit of weird definition but doing it like this
-// means we don't have to copy any code between implementations
-// that preserve mesh connectivity and those that introduce T junctions.
-
-template <typename TMesh, typename TSplitFunctionBindor> class SplitFunction
-{
-private :
-
- TMesh& m_mesh;
- TSplitFunctionBindor& m_functionBindor;
-
-public :
-
- SplitFunction( TMesh& mesh, TSplitFunctionBindor& functionBindor)
- : m_mesh(mesh), m_functionBindor(functionBindor)
- {};
-
- void
- SplitPolygon(
- const int p1Index,
- const MT_Plane3& plane,
- int& inPiece,
- int& outPiece,
- const MT_Scalar onEpsilon
- ){
-
- const TMesh::Polygon& p = m_mesh.Polys()[p1Index];
- TMesh::Polygon inP(p),outP(p);
-
- inP.Verts().clear();
- outP.Verts().clear();
-
- // Disconnect the polygon from the mesh.
- m_functionBindor.DisconnectPolygon(p1Index);
-
- int lastIndex = p.Verts().back();
- MT_Point3 lastVertex = m_mesh.Verts()[lastIndex].Pos();
-
- int lastClassification = CSG_Geometry::ComputeClassification(plane.signedDistance(lastVertex),onEpsilon);
- int totalClassification(lastClassification);
-
- // iterate through the vertex indices of the to-be-split polygon
-
- int i;
- int j=p.Size()-1;
- for (i = 0; i < p.Size(); j = i, ++i)
- {
- int newIndex = p[i];
- MT_Point3 aVertex = m_mesh.Verts()[newIndex].Pos();
- int newClassification = CSG_Geometry::ComputeClassification(plane.signedDistance(aVertex),onEpsilon);
-
- // if neither the new vertex nor the old vertex were on and they differ
- if ((newClassification != lastClassification) && newClassification && lastClassification)
- {
- // create new vertex
- int newVertexIndex = m_mesh.Verts().size();
- m_mesh.Verts().push_back(TMesh::Vertex());
-
- // work out new vertex position.
- MT_Vector3 v = aVertex - lastVertex;
- MT_Scalar sideA = plane.signedDistance(lastVertex);
-
- MT_Scalar epsilon = -sideA/plane.Normal().dot(v);
- m_mesh.Verts().back().Pos() = lastVertex + (v * epsilon);
-
- // Make a new VertexProp
- TMesh::Polygon::TVProp splitProp(newVertexIndex,p.VertexProps(j),p.VertexProps(i),epsilon);
-
-
- // add new index to both polygons.
- inP.Verts().push_back( splitProp );
- outP.Verts().push_back( splitProp );
-
- // insert vertex into any neighbouring polygons of this edge
- m_functionBindor.InsertVertexAlongEdge(lastIndex,newIndex,splitProp);
-
- }
-
- Classify(inP.Verts(),outP.Verts(),newClassification,p.VertexProps(i));
- lastClassification = newClassification;
- totalClassification |= newClassification;
- lastVertex = aVertex;
- lastIndex = newIndex;
- }
-
- if (totalClassification == 3)
- {
- // replace polygon p with the inpiece and add the outPiece to the back
- // of the mesh. we just replace the vertices as the normal will be the same.
-
- inPiece = p1Index;
- outPiece = m_mesh.Polys().size();
-
- m_mesh.Polys()[p1Index] = inP;
- m_mesh.Polys().push_back( outP );
-
- m_functionBindor.ConnectPolygon(inPiece);
- m_functionBindor.ConnectPolygon(outPiece);
-
- } else {
-
- // remember to connect back the original polygon!
- m_functionBindor.ConnectPolygon(p1Index);
-
- // dont touch the mesh but just return the index of the original polygon
- if (totalClassification == 1)
- {
- inPiece = p1Index;
- outPiece = -1;
- } else {
- outPiece = p1Index;
- inPiece = -1;
- }
- }
- }
-
-
- void Classify(
- TMesh::Polygon::TVPropList &inGroup,
- TMesh::Polygon::TVPropList &outGroup,
- int classification,
- TMesh::Polygon::TVProp prop
- ) {
- switch (classification)
- {
- case 0 :
- inGroup.push_back(prop);
- outGroup.push_back(prop);
- break;
- case 1 :
- inGroup.push_back(prop);
- break;
- case 2 :
- outGroup.push_back(prop);
- break;
- default :
- break;
- }
- }
-
- ~SplitFunction() {};
-};
-
-
-template <typename PROP> class DefaultSplitFunctionBindor
-{
-public :
-
- DefaultSplitFunctionBindor() {};
-
- void DisconnectPolygon(int){
- }
-
- void ConnectPolygon(int) {
- }
-
- void InsertVertexAlongEdge(int,int,const PROP& ) {
- }
-
- ~DefaultSplitFunctionBindor(){};
-};
-
-
-#endif \ No newline at end of file
diff --git a/intern/csg/intern/CSG_TreeQueries.h b/intern/csg/intern/CSG_TreeQueries.h
deleted file mode 100644
index 1b79d2ca36d..00000000000
--- a/intern/csg/intern/CSG_TreeQueries.h
+++ /dev/null
@@ -1,158 +0,0 @@
-#ifndef CSG_TREEQUERIES_H
-#define CSG_TREEQUERIES_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-#include "CSG_IndexDefs.h"
-#include "CSG_BBoxTree.h"
-#include "CSG_Math.h"
-
-template <typename TMesh> class TreeIntersector
-{
-public :
-
- TreeIntersector(
- const BBoxTree& a,
- const BBoxTree& b,
- OverlapTable *aOverlapsB,
- OverlapTable *bOverlapsA,
- const TMesh* meshA,
- const TMesh* meshB
- ) {
- m_aOverlapsB = aOverlapsB;
- m_bOverlapsA = bOverlapsA;
- m_meshA = meshA;
- m_meshB = meshB;
-
- MarkIntersectingPolygons(a.RootNode(),b.RootNode());
- }
-
-private :
-
- void MarkIntersectingPolygons(const BBoxNode*a,const BBoxNode *b)
- {
- if (!intersect(a->m_bbox, b->m_bbox)) return;
- if (a->m_tag == BBoxNode::LEAF && b->m_tag == BBoxNode::LEAF)
- {
- const BBoxLeaf *la = (const BBoxLeaf *)a;
- const BBoxLeaf *lb = (const BBoxLeaf *)b;
-
- PolygonGeometry<TMesh> pg1(*m_meshA,la->m_polyIndex);
- PolygonGeometry<TMesh> pg2(*m_meshB,lb->m_polyIndex);
-
- if (CSG_PolygonIntersector<PolygonGeometry<TMesh>,PolygonGeometry<TMesh> >::
- IntersectPolygons(pg1,pg2,
- m_meshA->Polys()[la->m_polyIndex].Plane(),
- m_meshB->Polys()[lb->m_polyIndex].Plane()
- )
- ) {
- (*m_aOverlapsB)[lb->m_polyIndex].push_back(la->m_polyIndex);
- (*m_bOverlapsA)[la->m_polyIndex].push_back(lb->m_polyIndex);
- }
- } else
- if ( a->m_tag == BBoxNode::LEAF ||
- (b->m_tag != BBoxNode::LEAF && a->m_bbox.Size() < b->m_bbox.Size())
- ) {
- MarkIntersectingPolygons(a,((const BBoxInternal *)b)->lson);
- MarkIntersectingPolygons(a,((const BBoxInternal *)b)->rson);
- } else {
- MarkIntersectingPolygons(((const BBoxInternal *)a)->lson,b);
- MarkIntersectingPolygons(((const BBoxInternal *)a)->rson,b);
- }
- }
-
- // Temporaries held through recursive intersection
- OverlapTable* m_aOverlapsB;
- OverlapTable* m_bOverlapsA;
- const TMesh* m_meshA;
- const TMesh* m_meshB;
-
-};
-
-template<typename TMesh> class RayTreeIntersector
-{
-public:
-
- RayTreeIntersector(
- const BBoxTree& a,
- const TMesh* meshA,
- const MT_Line3& xRay,
- int& polyIndex
- ):
- m_meshA(meshA),
- m_polyIndex(-1),
- m_lastIntersectValue(MT_INFINITY)
- {
- FindIntersectingPolygons(a.RootNode(),xRay);
- polyIndex = m_polyIndex;
- }
-
-
-private :
-
- void FindIntersectingPolygons(const BBoxNode*a,const MT_Line3& xRay)
- {
- if ((xRay.Origin().x() + m_lastIntersectValue < a->m_bbox.Lower(0)) ||
- !a->m_bbox.IntersectXRay(xRay.Origin())
- ) {
- // ray does not intersect this box.
- return;
- }
-
- if (a->m_tag == BBoxNode::LEAF)
- {
- const BBoxLeaf *la = (const BBoxLeaf *)a;
- MT_Scalar testParameter(0);
-
- PolygonGeometry<TMesh> pg(*m_meshA,la->m_polyIndex);
-
- if (
- CSG_Math<PolygonGeometry<TMesh> >::InstersectPolyWithLine3D(
- xRay,pg,m_meshA->Polys()[la->m_polyIndex].Plane(),testParameter
- )
- ) {
- if (testParameter < m_lastIntersectValue)
- {
- m_lastIntersectValue = testParameter;
- m_polyIndex = la->m_polyIndex;
- }
- }
- } else {
- FindIntersectingPolygons(((const BBoxInternal*)a)->lson,xRay);
- FindIntersectingPolygons(((const BBoxInternal*)a)->rson,xRay);
- }
- }
-
- const TMesh* m_meshA;
-
- MT_Scalar m_lastIntersectValue;
- int m_polyIndex;
-};
-
-
-
-
-
-
-
-
-
-#endif
diff --git a/intern/csg/intern/CSG_Triangulate.h b/intern/csg/intern/CSG_Triangulate.h
deleted file mode 100644
index 95c0b602ddf..00000000000
--- a/intern/csg/intern/CSG_Triangulate.h
+++ /dev/null
@@ -1,96 +0,0 @@
-#ifndef TRIANGULATE_H
-#define TRIANGULATE_H
-
-/*****************************************************************/
-/** Static class to triangulate any contour/polygon efficiently **/
-/** You should replace Vector2d with whatever your own Vector **/
-/** class might be. Does not support polygons with holes. **/
-/** Uses STL vectors to represent a dynamic array of vertices. **/
-/** This code snippet was submitted to FlipCode.com by **/
-/** John W. Ratcliff (jratcliff@verant.com) on July 22, 2000 **/
-/** I did not write the original code/algorithm for this **/
-/** this triangulator, in fact, I can't even remember where I **/
-/** found it in the first place. However, I did rework it into **/
-/** the following black-box static class so you can make easy **/
-/** use of it in your own code. Simply replace Vector2d with **/
-/** whatever your own Vector implementation might be. **/
-/*****************************************************************/
-
-#include "CSG_IndexDefs.h"
-#include <vector> // Include STL vector class.
-class MT_Plane3;
-
-template <typename PGBinder> class CSG_Triangulate
-{
-public:
-
- CSG_Triangulate(
- );
-
- // triangulate a contour/polygon, places results in STL vector
- // as series of triangles. IT uses the major axis of the normal
- // to turn it into a 2d problem.
-
- // Should chaange this to accept a point array and a list of
- // indices into that point array. Result should be indices of those
- // indices.
- //
- // MT_Point3 global_array
- // vector<BSP_VertexInd> polygon
- // result is vector<int> into polygon.
-
- bool
- Process(
- const PGBinder& contour,
- const MT_Plane3 &normal,
- VIndexList &result
- );
-
- ~CSG_Triangulate(
- );
-
-private:
-
- // compute area of a contour/polygon
- MT_Scalar
- Area(
- const PGBinder& contour
- );
-
- // decide if point Px/Py is inside triangle defined by
- // (Ax,Ay) (Bx,By) (Cx,Cy)
-
- bool
- InsideTriangle(
- MT_Scalar Ax, MT_Scalar Ay,
- MT_Scalar Bx, MT_Scalar By,
- MT_Scalar Cx, MT_Scalar Cy,
- MT_Scalar Px, MT_Scalar Py
- );
-
-
- bool
- Snip(
- const PGBinder& contour,
- int u,
- int v,
- int w,
- int n,
- int *V
- );
-
- int m_xi;
- int m_yi;
- int m_zi;
-
- // Temporary storage
-
- VIndexList m_V;
-
-};
-
-#include "CSG_Triangulate.inl"
-
-#endif
-
-
diff --git a/intern/csg/intern/CSG_Triangulate.inl b/intern/csg/intern/CSG_Triangulate.inl
deleted file mode 100644
index d7f12201af3..00000000000
--- a/intern/csg/intern/CSG_Triangulate.inl
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-#include "MT_Plane3.h"
-#include "MT_Point3.h"
-
-static const MT_Scalar EPSILON = MT_Scalar(1e-10);
-
-template <typename PGBinder>
-CSG_Triangulate<PGBinder>::
-CSG_Triangulate(
-):
- m_xi(0),
- m_yi(1)
-{
-}
-
-template <typename PGBinder>
-CSG_Triangulate<PGBinder>::
-~CSG_Triangulate(
-){
-}
-
-
-template <typename PGBinder>
- MT_Scalar
-CSG_Triangulate<PGBinder>::
-Area(
- const PGBinder& contour
-){
-
- int n = contour.Size();
- MT_Scalar A(0.0);
-
- for(int p=n-1,q=0; q<n; p=q++)
- {
- A+= contour[p][m_xi]*contour[q][m_yi] -
- contour[q][m_xi]*contour[p][m_yi];
- }
- return A*MT_Scalar(0.5);
-}
-
-/*
- InsideTriangle decides if a point P is Inside of the triangle
- defined by A, B, C.
- Or within an epsilon of it.
-*/
-
-template <typename PGBinder>
- bool
-CSG_Triangulate<PGBinder>::
-InsideTriangle(
- MT_Scalar Ax, MT_Scalar Ay,
- MT_Scalar Bx, MT_Scalar By,
- MT_Scalar Cx, MT_Scalar Cy,
- MT_Scalar Px, MT_Scalar Py
-){
- MT_Scalar ax, ay, bx, by, cx, cy, apx, apy, bpx, bpy, cpx, cpy;
- MT_Scalar cCROSSap, bCROSScp, aCROSSbp;
-
- ax = Cx - Bx; ay = Cy - By;
- bx = Ax - Cx; by = Ay - Cy;
- cx = Bx - Ax; cy = By - Ay;
- apx= Px - Ax; apy= Py - Ay;
- bpx= Px - Bx; bpy= Py - By;
- cpx= Px - Cx; cpy= Py - Cy;
-
- aCROSSbp = ax*bpy - ay*bpx;
- cCROSSap = cx*apy - cy*apx;
- bCROSScp = bx*cpy - by*cpx;
-
- return ((aCROSSbp >= -EPSILON) && (bCROSScp >= -EPSILON) && (cCROSSap >= -EPSILON));
-};
-
-template <typename PGBinder>
- bool
-CSG_Triangulate<PGBinder>::
-Snip(
- const PGBinder& contour,
- int u,int v,
- int w,int n,
- int *V
-){
- MT_Scalar Ax, Ay, Bx, By, Cx, Cy;
-
- Ax = contour[V[u]][m_xi];
- Ay = contour[V[u]][m_yi];
-
- Bx = contour[V[v]][m_xi];
- By = contour[V[v]][m_yi];
-
- Cx = contour[V[w]][m_xi];
- Cy = contour[V[w]][m_yi];
-
- // Snip is passes if the area of the candidate triangle is
- // greater than 2*epsilon
- // And if none of the remaining vertices are inside the polygon
- // or within an epsilon of the boundary,
-
- if ( EPSILON > (((Bx-Ax)*(Cy-Ay)) - ((By-Ay)*(Cx-Ax))) ) return false;
-#if 1
- // this check is only needed for non-convex polygons
- // well yeah but convex to me and you is not necessarily convex to opengl.
- int p;
- MT_Scalar Px,Py;
-
- for (p=0;p<n;p++)
- {
- if( (p == u) || (p == v) || (p == w) ) continue;
- Px = contour[V[p]][m_xi];
- Py = contour[V[p]][m_yi];
- if (InsideTriangle(Ax,Ay,Bx,By,Cx,Cy,Px,Py)) return false;
- }
-#endif
- return true;
-}
-
-template <typename PGBinder>
- bool
-CSG_Triangulate<PGBinder>::
-Process(
- const PGBinder& contour,
- const MT_Plane3 &normal,
- VIndexList &result
-){
-
- // Choose major axis of normal and assign
- // 'projection' indices m_xi,m_yi;
-
- int maj_axis = normal.Normal().closestAxis();
-
- if (maj_axis == 0) {
- m_xi = 1; m_yi = 2;
- } else
- if (maj_axis == 1) {
- m_xi = 0; m_yi = 2;
- } else {
- m_xi = 0; m_yi = 1;
- }
- m_zi = maj_axis;
-
- /* initialize list of Vertices in polygon */
-
- int n = contour.Size();
- if ( n < 3 ) return false;
-
- /* we want a counter-clockwise polygon in V */
- /* to true but we also nead to preserve the winding order
- of polygons going into the routine. We keep track of what
- we did with a little bool */
- bool is_flipped = false;
-
- if ( 0.0f < Area(contour) ) {
- for (int v=0; v<n; v++) m_V.push_back(v);
- } else {
- for(int v=0; v<n; v++) m_V.push_back((n-1)-v);
- is_flipped = true;
- }
-
- int nv = n;
-
- /* remove nv-2 Vertices, creating 1 triangle every time */
- int count = 2*nv; /* error detection */
-
- for(int m=0, v=nv-1; nv>2; )
- {
- /* if we loop, it is probably a non-simple polygon */
- if (0 >= (count--))
- {
- //** Triangulate: ERROR - probable bad polygon!
- m_V.clear();
- return false;
- }
-
- /* three consecutive vertices in current polygon, <u,v,w> */
- int u = v ; if (nv <= u) u = 0; /* previous */
- v = u+1; if (nv <= v) v = 0; /* new v */
- int w = v+1; if (nv <= w) w = 0; /* next */
-
- /* Try and snip this triangle off from the
- current polygon.*/
-
- if ( Snip(contour,u,v,w,nv,m_V.begin()) )
- {
- int a,b,c,s,t;
-
- /* true names of the vertices */
- a = m_V[u]; b = m_V[v]; c = m_V[w];
-
- /* output Triangle indices*/
- if (is_flipped) {
- result.push_back( c );
- result.push_back( b );
- result.push_back( a );
- } else {
- result.push_back( a );
- result.push_back( b );
- result.push_back( c );
- }
-
- m++;
-
- /* remove v from remaining polygon */
- for(s=v,t=v+1;t<nv;s++,t++) m_V[s] = m_V[t]; nv--;
-
- /* resest error detection counter */
- count = 2*nv;
- }
- }
-
- m_V.clear();
- return true;
-}
-
-
diff --git a/intern/csg/intern/CSG_Vertex.h b/intern/csg/intern/CSG_Vertex.h
deleted file mode 100644
index bb39dbceab5..00000000000
--- a/intern/csg/intern/CSG_Vertex.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef __VERTEX_H
-#define __VERTEX_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-#include "MT_Point3.h"
-#include <algorithm>
-#include "CSG_IndexDefs.h"
-
-
-class VertexBase
-{
-protected:
-
- // Map to this vertex position in the classified Mesh
- // or -1 if this vertex has not yet been used.
- int m_vertexMap;
-
- MT_Point3 m_pos;
-
-public :
-
- VertexBase():m_vertexMap(-1) {};
-
- // Regular vertex model
- //////////////////////
- const MT_Point3& Pos() const { return m_pos;}
- MT_Point3& Pos() {return m_pos;}
-
- int & VertexMap() { return m_vertexMap;}
- const int & VertexMap() const { return m_vertexMap;}
-
- ~VertexBase(){};
-};
-
-#endif
-
-
diff --git a/intern/csg/intern/MT_Line3.cpp b/intern/csg/intern/MT_Line3.cpp
deleted file mode 100644
index 199eaea3390..00000000000
--- a/intern/csg/intern/MT_Line3.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-//implementation of MT_Line3
-/////////////////////////////
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-#include "MT_Line3.h"
-
-MT_Line3::MT_Line3()
-:
- m_origin(0,0,0),
- m_dir(1,0,0)
-{
- m_bounds[0] = false;
- m_bounds[1] = false;
-
- m_params[0] = 0;
- m_params[1] = 1;
-}
-
-
-MT_Line3::MT_Line3(
- const MT_Point3& p1,
- const MT_Point3& p2
-):
- m_origin(p1),
- m_dir(p2-p1)
-{
- m_bounds[0] = true;
- m_bounds[1] = true;
- m_params[0] = 0;
- m_params[1] = 1;
-}
-
-// construct infinite line from p1 in direction v
-MT_Line3::MT_Line3(
- const MT_Point3& p1,
- const MT_Vector3& v
-):
- m_origin(p1),
- m_dir(v)
-{
- m_bounds[0] = false;
- m_bounds[1] = false;
- m_params[0] = 0;
- m_params[1] = 1;
-}
-
-MT_Line3::MT_Line3(
- const MT_Point3& p1,
- const MT_Vector3& v,
- bool bound1,
- bool bound2
-):
- m_origin(p1),
- m_dir(v)
-{
- m_bounds[0] = bound1;
- m_bounds[1] = bound2;
- m_params[0] = 0;
- m_params[1] = 1;
-}
-
-
diff --git a/intern/csg/intern/MT_Line3.h b/intern/csg/intern/MT_Line3.h
deleted file mode 100644
index e36f3995b91..00000000000
--- a/intern/csg/intern/MT_Line3.h
+++ /dev/null
@@ -1,109 +0,0 @@
-#ifndef __CGS_LINE_H
-#define __CGS_LINE_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-#include "MT_Point3.h"
-#include "MT_Vector3.h"
-
-class MT_Line3
-{
-public :
-
- MT_Line3();
-
- // construct closed line segment from p1 -> p2
- MT_Line3(const MT_Point3& p1, const MT_Point3& p2);
-
- // construct infinite line from p1 in direction v
- MT_Line3(const MT_Point3& p1, const MT_Vector3& v);
-
- MT_Line3(const MT_Point3& p1, const MT_Vector3& v, bool bound1, bool bound2);
-
- // return an infinite ray from the point p1 in the direction v
- static MT_Line3 InfiniteRay(const MT_Point3& p1, const MT_Vector3& v);
-
- // return direction of line
- const MT_Vector3& Direction() const { return m_dir;}
-
- // return a point on the line
- const MT_Point3& Origin() const { return m_origin;}
-
- bool Bounds(int i) const {
- return (i == 0 ? m_bounds[0] : m_bounds[1]);
- }
-
- bool & Bounds(int i) {
- return (i == 0 ? m_bounds[0] : m_bounds[1]);
- }
-
- const MT_Scalar& Param(int i) const {
- return (i == 0 ? m_params[0] : m_params[1]);
- }
-
- MT_Scalar& Param(int i){
- return (i == 0 ? m_params[0] : m_params[1]);
- }
-
- // Return the smallest Vector from the point to the line
- // does not take into account bounds of line.
- MT_Vector3 UnboundSmallestVector(const MT_Point3& point) const
- {
- MT_Vector3 diff(m_origin-point);
- return diff - m_dir * diff.dot(m_dir);
- }
-
- // Return the closest parameter of the line to the
- // point.
- MT_Scalar UnboundClosestParameter(const MT_Point3& point) const
- {
- MT_Vector3 diff(m_origin-point);
- return diff.dot(m_dir);
- }
-
- MT_Scalar UnboundDistance(const MT_Point3& point) const
- {
- return UnboundSmallestVector(point).length();
- }
-
- // Return true if the line parameter t is actually within the line bounds.
- bool IsParameterOnLine(const MT_Scalar &t) const
- {
- return ((m_params[0]-MT_EPSILON < t) || (!m_bounds[0])) && ((m_params[1] > t+MT_EPSILON) || (!m_bounds[1]));
-// return ((m_params[0] < t) || (!m_bounds[0])) && ((m_params[1] > t ) || (!m_bounds[1]));
- }
-
-
-private :
-
- bool m_bounds[2];
-
- MT_Scalar m_params[2];
- MT_Point3 m_origin;
- MT_Vector3 m_dir;
-
-};
-
-
-
-
-
-#endif \ No newline at end of file
diff --git a/intern/csg/intern/blender/CSG_BlenderMesh.h b/intern/csg/intern/blender/CSG_BlenderMesh.h
deleted file mode 100644
index 1f7a841d1e2..00000000000
--- a/intern/csg/intern/blender/CSG_BlenderMesh.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef CSG_BlenderMesh_H
-#define CSG_BlenderMesh_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-//typedefs for types used to represent blender meshes in the CSG library
-
-#include "CSG_IndexDefs.h"
-#include "CSG_ConnectedMesh.h"
-
-#include "CSG_Vertex.h"
-#include "CSG_CVertex.h"
-#include "CSG_Polygon.h"
-#include "CSG_Mesh.h"
-#include "CSG_MeshWrapper.h"
-#include "CSG_Interface.h"
-#include "CSG_BlenderVProp.h"
-
-typedef PolygonBase<BlenderVProp,CSG_IFaceData> TestPolygon;
-
-typedef Mesh<TestPolygon,VertexBase> AMesh;
-typedef Mesh<TestPolygon,CVertex > AConnectedMesh;
-
-typedef MeshWrapper<AMesh> AMeshWrapper;
-typedef ConnectedMeshWrapper<AConnectedMesh> AConnectedMeshWrapper;
-
-#endif \ No newline at end of file
diff --git a/intern/csg/intern/blender/CSG_BlenderVProp.cpp b/intern/csg/intern/blender/CSG_BlenderVProp.cpp
deleted file mode 100644
index 6acbdf25e6f..00000000000
--- a/intern/csg/intern/blender/CSG_BlenderVProp.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-#include "CSG_Interface.h"
-#include "CSG_BlenderVProp.h"
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-#pragma warning( disable : 4786 )
-
-int NoFunc(
- const CSG_IFaceVertexData*,
- const CSG_IFaceVertexData*,
- CSG_IFaceVertexData*,
- double
-){
- return 0;
-}
-
-
-CSG_InterpolateUserFaceVertexDataFunc BlenderVProp::InterpFunc = &NoFunc; \ No newline at end of file
diff --git a/intern/csg/intern/blender/CSG_CsgOp.cpp b/intern/csg/intern/blender/CSG_CsgOp.cpp
deleted file mode 100644
index 1ff84ab0f3b..00000000000
--- a/intern/csg/intern/blender/CSG_CsgOp.cpp
+++ /dev/null
@@ -1,257 +0,0 @@
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-#pragma warning( disable : 4786 )
-
-#include "CSG_CsgOp.h"
-#include "CSG_BooleanOp.h"
-#include "CSG_BBoxTree.h"
-#include "CSG_Math.h"
-#include "CSG_GeometryBinder.h"
-#include "CSG_MeshCopier.h"
-
-#include "MEM_SmartPtr.h"
-
-using namespace std;
-
- void
-BuildTree(
- const AMesh& mesh,
- BBoxTree& tree
-) {
- int numLeaves = mesh.Polys().size();
-
- BBoxLeaf *aLeaves = new BBoxLeaf[numLeaves];
-
- int i;
- for (i=0;i< mesh.Polys().size(); i++)
- {
- PolygonGeometry<AMesh> pg(mesh,i);
- aLeaves[i] = BBoxLeaf(i,CSG_Math<PolygonGeometry<AMesh> >::FitBBox(pg) );
- }
-
- tree.BuildTree(aLeaves,numLeaves);
-}
-
-
- void
-ExtractClassificationPreserve(
- const AMesh& meshA,
- const AMesh& meshB,
- const BBoxTree& aTree,
- const BBoxTree& bTree,
- const OverlapTable& aOverlapsB,
- const OverlapTable& bOverlapsA,
- int aClassification,
- int bClassification,
- bool reverseA,
- bool reverseB,
- AMesh& output
-){
-
- // Now we need to make a copy of each mesh and then partition each of those
- // copies with respect to the original meshes.
- AConnectedMesh meshAPartitioned;
- AConnectedMesh meshBPartitioned;
-
- MeshCopier<AMesh,AConnectedMesh>::Copy(meshA,meshAPartitioned);
- MeshCopier<AMesh,AConnectedMesh>::Copy(meshB,meshBPartitioned);
-
- AConnectedMeshWrapper meshAWrapper(meshAPartitioned);
- AConnectedMeshWrapper meshBWrapper(meshBPartitioned);
-
- meshAWrapper.BuildVertexPolyLists();
- meshBWrapper.BuildVertexPolyLists();
- // Partition meshA wrt to meshB
- BooleanOp<AConnectedMeshWrapper,AMesh>::PartitionMesh(meshAWrapper,meshB,bOverlapsA);
- // and now meshB wrt meshA
- BooleanOp<AConnectedMeshWrapper,AMesh>::PartitionMesh(meshBWrapper,meshA,aOverlapsB);
-
- // Classify the partioned meshes wrt to the originals.
- BooleanOp<AConnectedMesh,AMesh>::ClassifyMesh(meshB,bTree,meshAPartitioned);
- BooleanOp<AConnectedMesh,AMesh>::ClassifyMesh(meshA,aTree,meshBPartitioned);
-
- // Extract the classification we want from both meshes
- BooleanOp<AConnectedMesh,AMesh>::ExtractClassification(meshAPartitioned, output,aClassification,reverseA);
- BooleanOp<AConnectedMesh,AMesh>::ExtractClassification(meshBPartitioned, output,bClassification,reverseB);
-}
-
- void
-ExtractClassification(
- const AMesh& meshA,
- const AMesh& meshB,
- const BBoxTree& aTree,
- const BBoxTree& bTree,
- const OverlapTable& aOverlapsB,
- const OverlapTable& bOverlapsA,
- int aClassification,
- int bClassification,
- bool reverseA,
- bool reverseB,
- AMesh& output
-){
- // Now we need to make a copy of each mesh and then partition each of those
- // copies with respect to the original meshes.
- AMesh meshAPartitioned(meshA);
- AMesh meshBPartitioned(meshB);
-
- AMeshWrapper meshAWrapper(meshAPartitioned);
- AMeshWrapper meshBWrapper(meshBPartitioned);
-
- // Partition meshA wrt to meshB
- BooleanOp<AMeshWrapper,AMesh>::PartitionMesh(meshAWrapper,meshB,bOverlapsA);
- // and now meshB wrt meshA
- BooleanOp<AMeshWrapper,AMesh>::PartitionMesh(meshBWrapper,meshA,aOverlapsB);
-
- // Classify the partioned meshes wrt to the originals.
- BooleanOp<AMesh,AMesh>::ClassifyMesh(meshB,bTree,meshAPartitioned);
- BooleanOp<AMesh,AMesh>::ClassifyMesh(meshA,aTree,meshBPartitioned);
-
- // Extract the classification we want from both meshes
- BooleanOp<AMesh,AMesh>::ExtractClassification(meshAPartitioned, output,aClassification,reverseA);
- BooleanOp<AMesh,AMesh>::ExtractClassification(meshBPartitioned, output,bClassification,reverseB);
-}
-
- AMesh *
-CsgOp::
-Intersect(
- const AMesh& meshA,
- const AMesh& meshB,
- bool preserve
-){
- // assumes they occups the same space and their planes have
- // been computed.
-
- // First thing is to build a BBoxTree for each mesh.
- BBoxTree aTree,bTree;
- BuildTree(meshA,aTree);
- BuildTree(meshB,bTree);
-
- // Build the overlap tables - they tell us which polygons from
- // meshA overlap with those of meshB and vice versa
- OverlapTable bOverlapsA(meshA.Polys().size());
- OverlapTable aOverlapsB(meshB.Polys().size());
-
- BooleanOp<AMesh,AMesh>::BuildSplitGroup(meshA,meshB,aTree,bTree,aOverlapsB,bOverlapsA);
-
- // Create a new mesh for the output
- MEM_SmartPtr<AMesh> output = new AMesh;
- if (output == NULL) return NULL;
-
- if (preserve)
- {
- ExtractClassificationPreserve(meshA,meshB,aTree,bTree,aOverlapsB,bOverlapsA,1,1,false,false,output.Ref());
- } else {
- ExtractClassification(meshA,meshB,aTree,bTree,aOverlapsB,bOverlapsA,1,1,false,false,output.Ref());
- }
-
-#if 1
- // Triangulate the result
- AMeshWrapper outputWrapper(output.Ref());
- outputWrapper.Triangulate();
-#endif
- return output.Release();
-}
-
-
- AMesh *
-CsgOp::
-Union(
- const AMesh& meshA,
- const AMesh& meshB,
- bool preserve
-){
- // assumes they occups the same space and their planes have
- // been computed.
-
- // First thing is to build a BBoxTree for each mesh.
- BBoxTree aTree,bTree;
- BuildTree(meshA,aTree);
- BuildTree(meshB,bTree);
-
- // Build the overlap tables - they tell us which polygons from
- // meshA overlap with those of meshB and vice versa
- OverlapTable bOverlapsA(meshA.Polys().size());
- OverlapTable aOverlapsB(meshB.Polys().size());
-
- BooleanOp<AMesh,AMesh>::BuildSplitGroup(meshA,meshB,aTree,bTree,aOverlapsB,bOverlapsA);
-
- // Create a new mesh for the output
- MEM_SmartPtr<AMesh> output = new AMesh;
- if (output == NULL) return NULL;
-
- if (preserve)
- {
- ExtractClassificationPreserve(meshA,meshB,aTree,bTree,aOverlapsB,bOverlapsA,2,2,false,false,output.Ref());
- } else {
- ExtractClassification(meshA,meshB,aTree,bTree,aOverlapsB,bOverlapsA,2,2,false,false,output.Ref());
- }
-
-#if 1
- // Triangulate the result
- AMeshWrapper outputWrapper(output.Ref());
- outputWrapper.Triangulate();
-#endif
- return output.Release();
-}
-
- AMesh *
-CsgOp::
-Difference(
- const AMesh& meshA,
- const AMesh& meshB,
- bool preserve
-){
-
- // assumes they occups the same space and their planes have
- // been computed.
-
- // First thing is to build a BBoxTree for each mesh.
- BBoxTree aTree,bTree;
- BuildTree(meshA,aTree);
- BuildTree(meshB,bTree);
-
- // Build the overlap tables - they tell us which polygons from
- // meshA overlap with those of meshB and vice versa
- OverlapTable bOverlapsA(meshA.Polys().size());
- OverlapTable aOverlapsB(meshB.Polys().size());
-
- BooleanOp<AMesh,AMesh>::BuildSplitGroup(meshA,meshB,aTree,bTree,aOverlapsB,bOverlapsA);
-
- // Create a new mesh for the output
- MEM_SmartPtr<AMesh> output = new AMesh;
- if (output == NULL) return NULL;
-
- if (preserve)
- {
- ExtractClassificationPreserve(meshA,meshB,aTree,bTree,aOverlapsB,bOverlapsA,2,1,false,true,output.Ref());
- } else {
- ExtractClassification(meshA,meshB,aTree,bTree,aOverlapsB,bOverlapsA,2,1,false,true,output.Ref());
- }
-
-#if 1
- // Triangulate the result
- AMeshWrapper outputWrapper(output.Ref());
- outputWrapper.Triangulate();
-#endif
- return output.Release();
-}
-
-
diff --git a/intern/csg/intern/blender/CSG_CsgOp.h b/intern/csg/intern/blender/CSG_CsgOp.h
deleted file mode 100644
index 3b0e8b33766..00000000000
--- a/intern/csg/intern/blender/CSG_CsgOp.h
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef CSG_CsgOp_h
-#define CSG_CsgOp_h
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-#include "CSG_BlenderMesh.h"
-
-
-class CsgOp
-{
-public :
-
- static
- AMesh *
- Intersect(
- const AMesh& meshA,
- const AMesh& meshB,
- bool preserve
- );
-
- static
- AMesh *
- Union(
- const AMesh& meshA,
- const AMesh& meshB,
- bool preserve
- );
-
- static
- AMesh *
- Difference(
- const AMesh& meshA,
- const AMesh& meshB,
- bool preserve
- );
-
-
-};
-
-
-#endif \ No newline at end of file
diff --git a/intern/csg/intern/blender/CSG_IndexDefs.h b/intern/csg/intern/blender/CSG_IndexDefs.h
deleted file mode 100644
index f385537d0ac..00000000000
--- a/intern/csg/intern/blender/CSG_IndexDefs.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef CSG_INDEXDEFS_H
-#define CSG_INDEXDEFS_H
-
-//typdefs for lists and things in the CSG library
-
-#include <vector>
-
-typedef std::vector<int> PIndexList;
-typedef PIndexList::iterator PIndexIt;
-typedef PIndexList::const_iterator const_PIndexIt;
-
-typedef std::vector<int> VIndexList;
-typedef VIndexList::iterator VIndexIt;
-typedef VIndexList::const_iterator const_VIndexIt;
-
-typedef std::vector< PIndexList > OverlapTable;
-
-
-
-#endif
-
-
diff --git a/intern/csg/intern/blender/CSG_Interface.cpp b/intern/csg/intern/blender/CSG_Interface.cpp
deleted file mode 100644
index 8b6415f1b3a..00000000000
--- a/intern/csg/intern/blender/CSG_Interface.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-/**
- * Implementation of external C api for CSG lib .
- */
-#pragma warning( disable : 4786 )
-
-#include "CSG_Interface.h"
-#include "CSG_Iterator.h"
-#include "CSG_BlenderMesh.h"
-#include "CSG_MeshBuilder.h"
-#include "CSG_CsgOp.h"
-
-#include "MEM_SmartPtr.h"
-
-struct CSG_MeshInfo {
- MEM_SmartPtr<AMesh> output_mesh;
-};
-
- CSG_BooleanOperation *
-CSG_NewBooleanFunction(
- void
-){
- CSG_MeshInfo * mesh_info = new CSG_MeshInfo;
- CSG_BooleanOperation * output = new CSG_BooleanOperation;
-
- if (mesh_info==NULL || output==NULL) return NULL;
-
- mesh_info->output_mesh = NULL;
- output->CSG_info = mesh_info;
-
- return output;
-}
-
- int
-CSG_PerformBooleanOperation(
- CSG_BooleanOperation * operation,
- CSG_OperationType op_type,
- CSG_FaceIteratorDescriptor obAFaces,
- CSG_VertexIteratorDescriptor obAVertices,
- CSG_FaceIteratorDescriptor obBFaces,
- CSG_VertexIteratorDescriptor obBVertices,
- CSG_InterpolateUserFaceVertexDataFunc interp_func
-){
-
- if (operation == NULL) return 0;
-
- CSG_MeshInfo * mesh_info = static_cast<CSG_MeshInfo *>(operation->CSG_info);
- if (mesh_info == NULL) return 0;
-
- obAFaces.Reset(obAFaces.it);
- obBFaces.Reset(obBFaces.it);
- obAVertices.Reset(obAVertices.it);
- obBVertices.Reset(obBVertices.it);
-
- MEM_SmartPtr<AMesh> outputMesh;
-
- try {
- // Build the individual meshes
- // set the face data size
- BlenderVProp::InterpFunc = interp_func;
-
- MEM_SmartPtr<AMesh> obA = MeshBuilder::NewMesh(obAFaces,obAVertices);
-
- MEM_SmartPtr<AMesh> obB = MeshBuilder::NewMesh(obBFaces,obBVertices);
-
- if (
- obA == NULL ||
- obB == NULL
- ) {
- return 0;
- }
-
- // build normals
- AMeshWrapper aMeshWrap(obA.Ref()), bMeshWrap(obB.Ref());
- aMeshWrap.ComputePlanes();
- bMeshWrap.ComputePlanes();
-
- // translate enums!
-
- switch(op_type) {
- case e_csg_union :
- case e_csg_classify :
- outputMesh = CsgOp::Union(obA.Ref(),obB.Ref(),true);
- break;
- case e_csg_intersection :
- outputMesh = CsgOp::Intersect(obA.Ref(),obB.Ref(),true);
- break;
- case e_csg_difference :
- outputMesh = CsgOp::Difference(obA.Ref(),obB.Ref(),true);
- break;
- default :
- return 0;
- }
- }
- catch(...) {
- return 0;
- }
-
- // set the output mesh
- mesh_info->output_mesh = outputMesh;
-
- return 1;
-}
-
- int
-CSG_OutputFaceDescriptor(
- CSG_BooleanOperation * operation,
- CSG_FaceIteratorDescriptor * output
-){
- if (operation == NULL) return 0;
- CSG_MeshInfo * mesh_info = static_cast<CSG_MeshInfo *>(operation->CSG_info);
-
- if (mesh_info == NULL) return 0;
- if (mesh_info->output_mesh == NULL) return 0;
-
- AMesh_FaceIt_Construct(mesh_info->output_mesh,output);
- return 1;
-}
-
-
- int
-CSG_OutputVertexDescriptor(
- CSG_BooleanOperation * operation,
- CSG_VertexIteratorDescriptor *output
-){
- if (operation == NULL) return 0;
- CSG_MeshInfo * mesh_info = static_cast<CSG_MeshInfo *>(operation->CSG_info);
-
- if (mesh_info == NULL) return 0;
- if (mesh_info->output_mesh == NULL) return 0;
-
- AMesh_VertexIt_Construct(mesh_info->output_mesh,output);
- return 1;
-}
-
- void
-CSG_FreeVertexDescriptor(
- CSG_VertexIteratorDescriptor * v_descriptor
-){
- AMesh_VertexIt_Destruct(v_descriptor);
-}
-
-
- void
-CSG_FreeFaceDescriptor(
- CSG_FaceIteratorDescriptor * f_descriptor
-){
- AMesh_FaceIt_Destruct(f_descriptor);
-}
-
-
- void
-CSG_FreeBooleanOperation(
- CSG_BooleanOperation *operation
-){
- if (operation != NULL) {
- CSG_MeshInfo * mesh_info = static_cast<CSG_MeshInfo *>(operation->CSG_info);
- delete(mesh_info);
- delete(operation);
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/intern/csg/intern/blender/CSG_Iterator.h b/intern/csg/intern/blender/CSG_Iterator.h
deleted file mode 100644
index e349229be9e..00000000000
--- a/intern/csg/intern/blender/CSG_Iterator.h
+++ /dev/null
@@ -1,199 +0,0 @@
-
-#ifndef CSG_Iterator_H
-#define CSG_Iterator_H
-
-#include "CSG_BlenderMesh.h"
-#include "CSG_Interface.h"
-
-#include "MEM_SmartPtr.h"
-/**
- * This class defines 2 C style iterators over a CSG mesh, one for
- * vertices and 1 for faces. They conform to the iterator interface
- * defined in CSG_BooleanOps.h
- */
-
-struct AMesh_VertexIt {
- AMesh* mesh;
- AMesh::VLIST::const_iterator pos;
-};
-
-
-static
- void
-AMesh_VertexIt_Destruct(
- CSG_VertexIteratorDescriptor * vIterator
-) {
- delete ((AMesh_VertexIt *)(vIterator->it));
- vIterator->it = NULL;
- vIterator->Done = NULL;
- vIterator->Fill = NULL;
- vIterator->Reset = NULL;
- vIterator->Step = NULL;
- vIterator->num_elements = 0;
-};
-
-
-static
- int
-AMesh_VertexIt_Done(
- CSG_IteratorPtr it
-) {
- // assume CSG_IteratorPtr is of the correct type.
- AMesh_VertexIt * vertex_it = (AMesh_VertexIt *)it;
-
- if (vertex_it->pos < vertex_it->mesh->Verts().end() ) return 0;
- return 1;
-};
-
-static
- void
-AMesh_VertexIt_Fill(
- CSG_IteratorPtr it,
- CSG_IVertex *vert
-) {
- // assume CSG_IteratorPtr is of the correct type.
- AMesh_VertexIt * vertex_it = (AMesh_VertexIt *)it;
-
- vertex_it->pos->Pos().getValue(vert->position);
-};
-
-static
- void
-AMesh_VertexIt_Step(
- CSG_IteratorPtr it
-) {
- // assume CSG_IteratorPtr is of the correct type.
- AMesh_VertexIt * vertex_it = (AMesh_VertexIt *)it;
-
- ++(vertex_it->pos);
-};
-
-static
- void
-AMesh_VertexIt_Reset(
- CSG_IteratorPtr it
-) {
- // assume CSG_IteratorPtr is of the correct type.
- AMesh_VertexIt * vertex_it = (AMesh_VertexIt *)it;
- vertex_it->pos = vertex_it->mesh->Verts().begin();
-};
-
-static
- void
-AMesh_VertexIt_Construct(
- AMesh *mesh,
- CSG_VertexIteratorDescriptor *output
-){
- // user should have insured mesh is not equal to NULL.
-
- output->Done = AMesh_VertexIt_Done;
- output->Fill = AMesh_VertexIt_Fill;
- output->Step = AMesh_VertexIt_Step;
- output->Reset = AMesh_VertexIt_Reset;
- output->num_elements = mesh->Verts().size();
-
- AMesh_VertexIt * v_it = new AMesh_VertexIt;
- v_it->mesh = mesh;
- v_it->pos = mesh->Verts().begin();
- output->it = v_it;
-};
-
-
-/**
- * Face iterator.
- */
-
-struct AMesh_FaceIt {
- AMesh* mesh;
- AMesh::PLIST::const_iterator pos;
-};
-
-
-static
- void
-AMesh_FaceIt_Destruct(
- CSG_FaceIteratorDescriptor *fIterator
-) {
- delete ((AMesh_FaceIt *)(fIterator->it));
- fIterator->it = NULL;
- fIterator->Done = NULL;
- fIterator->Fill = NULL;
- fIterator->Reset = NULL;
- fIterator->Step = NULL;
- fIterator->num_elements = 0;
-};
-
-
-static
- int
-AMesh_FaceIt_Done(
- CSG_IteratorPtr it
-) {
- // assume CSG_IteratorPtr is of the correct type.
- AMesh_FaceIt * face_it = (AMesh_FaceIt *)it;
-
- return face_it->pos >= face_it->mesh->Polys().end();
-};
-
-static
- void
-AMesh_FaceIt_Fill(
- CSG_IteratorPtr it,
- CSG_IFace *face
-){
- // assume CSG_IteratorPtr is of the correct type.
- AMesh_FaceIt * face_it = (AMesh_FaceIt *)it;
-
- face->m_vertexData[0] = face_it->pos->VertexProps(0).Data();
- face->m_vertexData[1] = face_it->pos->VertexProps(1).Data();
- face->m_vertexData[2] = face_it->pos->VertexProps(2).Data();
-
- face->m_vertexNumber =3;
- face->m_faceData = face_it->pos->FProp();
-};
-
-static
- void
-AMesh_FaceIt_Step(
- CSG_IteratorPtr it
-) {
- // assume CSG_IteratorPtr is of the correct type.
- AMesh_FaceIt * face_it = (AMesh_FaceIt *)it;
- face_it->pos++;
-};
-
-static
- void
-AMesh_FaceIt_Reset(
- CSG_IteratorPtr it
-) {
- // assume CSG_IteratorPtr is of the correct type.
- AMesh_FaceIt * f_it = (AMesh_FaceIt *)it;
- f_it->pos = f_it->mesh->Polys().begin();
-};
-
-static
- void
-AMesh_FaceIt_Construct(
- AMesh * mesh,
- CSG_FaceIteratorDescriptor *output
-) {
-
- output->Done = AMesh_FaceIt_Done;
- output->Fill = AMesh_FaceIt_Fill;
- output->Step = AMesh_FaceIt_Step;
- output->Reset = AMesh_FaceIt_Reset;
-
- output->num_elements = mesh->Polys().size();
-
- AMesh_FaceIt * f_it = new AMesh_FaceIt;
- f_it->mesh = mesh;
- f_it->pos = mesh->Polys().begin();
-
- output->it = f_it;
-
-};
-
-
-#endif
-
diff --git a/intern/csg/intern/blender/CSG_MeshBuilder.h b/intern/csg/intern/blender/CSG_MeshBuilder.h
deleted file mode 100644
index 5d65acdab50..00000000000
--- a/intern/csg/intern/blender/CSG_MeshBuilder.h
+++ /dev/null
@@ -1,123 +0,0 @@
-#ifndef CSG_MeshBuilder_H
-#define CSG_MeshBuilder_H
-/*
- CSGLib - Software Library for Constructive Solid Geometry
- Copyright (C) 2003-2004 Laurence Bourn
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- Please send remarks, questions and bug reports to laurencebourn@hotmail.com
-*/
-
-#include "CSG_IndexDefs.h"
-#include "CSG_Vertex.h"
-#include "CSG_Polygon.h"
-#include "CSG_Interface.h"
-#include "CSG_BlenderMesh.h"
-
-// build a mesh from external c interface to this module
-////////////////////////////////////////////////////////
-
-class MeshBuilder
-{
-
-public :
-
- // You must have set the size of the SimpleProps data ptr size
- // before calling this function.
-
- static AMesh* NewMesh(
- CSG_FaceIteratorDescriptor obBFaces,
- CSG_VertexIteratorDescriptor obBVertices
- ) {
-
- AMesh *output = new AMesh();
-
- // first get the vertices.
- AMesh::VLIST& verts = output->Verts();
-
- verts.reserve(obBVertices.num_elements);
-
- obBVertices.Reset(obBFaces.it);
-
- CSG_IVertex iVert;
-
- while (!obBVertices.Done(obBVertices.it))
- {
- obBVertices.Fill(obBVertices.it,&iVert);
-
- AMesh::Vertex aVertex;
- aVertex.Pos().setValue(iVert.position);
- verts.push_back(aVertex);
-
- obBVertices.Step(obBVertices.it);
- }
-
- // now for the faces
- ////////////////////
-
- AMesh::PLIST &faces = output->Polys();
- faces.reserve(obBFaces.num_elements);
-
- CSG_IFace iFace;
-
- while (!obBFaces.Done(obBFaces.it))
- {
- obBFaces.Fill(obBFaces.it,&iFace);
-
- AMesh::Polygon aPolygon;
- aPolygon.FProp() = iFace.m_faceData;
-
- int i;
- for (i=0;i < 3; i++)
- {
- AMesh::Polygon::TVProp vProp;
- vProp.Data() = iFace.m_vertexData[i];
- aPolygon.Verts().push_back(vProp);
- }
- faces.push_back(aPolygon);
-
- if (iFace.m_vertexNumber == 4)
- {
- AMesh::Polygon::TVProp vProp[3];
- vProp[0].Data() = iFace.m_vertexData[2];
- vProp[1].Data() = iFace.m_vertexData[3];
- vProp[2].Data() = iFace.m_vertexData[0];
-
- aPolygon.VertexProps(0) = vProp[0];
- aPolygon.VertexProps(1) = vProp[1];
- aPolygon.VertexProps(2) = vProp[2];
-
- faces.push_back(aPolygon);
- }
-
- obBFaces.Step(obBFaces.it);
- }
-
- return output;
- }
-};
-
-
-#endif
-
-
-
-
-
-
-
-
- \ No newline at end of file
diff --git a/intern/csg/intern/blender/CSG_PropArray.h b/intern/csg/intern/blender/CSG_PropArray.h
deleted file mode 100644
index 7e28a2a417e..00000000000
--- a/intern/csg/intern/blender/CSG_PropArray.h
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef CSG_IndexProp_H
-#define CSG_IndexProp_H
-
-#include <vector>
-#include <memory.h>
-// Face and vertex props that are contained in a seperate array
-// (PropArray) and indexed through a VProp compliant thing.
-
-typedef int (*CSG_InterpFunc)(const void *d1, const void * d2, void *dnew, float epsilon);
-
-class IndexProp
-{
-private :
-
- int m_vIndex;
- int m_size;
- unsigned char *m_data;
- mutable CSG_InterpFunc m_interpFunc;
-
-public :
-
- IndexProp(const int& vIndex)
- : m_vIndex(vIndex),
- m_size(0),
- m_data(0)
- {};
-
- IndexProp(
- const int& vIndex,
- const IndexProp& p1,
- const IndexProp& p2,
- const MT_Scalar& epsilon
- ):
- m_vIndex(vIndex),
- m_data(0)
- {
- SetInterpFunc(p1.m_interpFunc);
- SetSize(p1.m_size);
- m_interpFunc(p1.m_data,p2.m_data,m_data,(float)epsilon);
- }
-
- IndexProp(const IndexProp& other)
- : m_vIndex(other.m_vIndex),
- m_data(0),
- m_interpFunc(other.m_interpFunc)
- {
- SetInterpFunc(other.m_interpFunc);
- SetSize(other.m_size);
- memcpy(m_data,other.m_data,m_size);
- }
-
- IndexProp(
- ): m_vIndex(-1),
- m_size(0),
- m_data(0)
- {};
-
- // Support conversion to an integer
- ///////////////////////////////////
- operator int(
- ) const {
- return m_vIndex;
- }
-
- // and assignment from an integer.
- //////////////////////////////////
- IndexProp&
- operator = (
- int i
- ) {
- m_vIndex = i;
- return *this;
- }
-
- IndexProp&
- operator = (
- const IndexProp& other
- ) {
- m_vIndex = other.m_vIndex;
- m_data = 0;
- SetSize(other.m_size);
- SetInterpFunc(other.m_interpFunc);
- memcpy(m_data,other.m_data,m_size);
- return *this;
- }
-
- // Our local functions
- //////////////////////
-
- void SetInterpFunc(CSG_InterpFunc interpFunc)
- {
- m_interpFunc = interpFunc;
- }
-
- void SetSize(int size)
- {
- delete[] m_data;
- m_data = new unsigned char[size];
- m_size = size;
- }
-
- int Size() const {
- return m_size;
- }
-
- void CopyData(const void * userData)
- {
- memcpy(m_data,userData,m_size);
- }
-
- void Create(int size, const void * userData, CSG_InterpFunc interpFunc)
- {
- SetInterpFunc(interpFunc);
- SetSize(size);
- CopyData(userData);
- }
-
- const unsigned char * GetData() const { return m_data;}
-
- ~IndexProp() {
- delete[] m_data;
- };
-};
-
-
-#endif \ No newline at end of file
diff --git a/intern/csg/intern/blender/CSG_SimpleProp.cpp b/intern/csg/intern/blender/CSG_SimpleProp.cpp
deleted file mode 100644
index 2c8f0eedae9..00000000000
--- a/intern/csg/intern/blender/CSG_SimpleProp.cpp
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "CSG_SimpleProp.h"
-
-
-int SimpleProp::s_size = 4; \ No newline at end of file
diff --git a/intern/csg/intern/blender/CSG_SimpleProp.h b/intern/csg/intern/blender/CSG_SimpleProp.h
deleted file mode 100644
index dc8ab45c6d8..00000000000
--- a/intern/csg/intern/blender/CSG_SimpleProp.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef CSG_SIMPLEPROP_H
-#define CSG_SIMPLEPROP_H
-
-// Simple face prop contains a fixed size piece of memory
-// initiated by the client and copied round through this
-// value type by the CSG library.
-#include <memory.h>
-
-class SimpleProp
-{
-private :
-
- static int s_size;
- unsigned char * m_data;
-
-public :
-
- static void SetSize(int size) {
- s_size = size;
- }
-
- static int Size() {
- return s_size;
- }
-
- SimpleProp()
- : m_data(new unsigned char[s_size])
- {}
-
- SimpleProp(const SimpleProp& other)
- : m_data(new unsigned char[s_size])
- {
- memcpy(m_data,other.m_data,s_size);
- }
-
- SimpleProp& operator = (const SimpleProp& other)
- {
- memcpy(m_data,other.m_data,s_size);
- return *this;
- }
-
- void SetData(const void * data)
- {
- memcpy(m_data,data,s_size);
- }
-
- const unsigned char * Data() const {
- return m_data;
- }
-
-
- ~SimpleProp()
- {
- delete[] m_data;
- }
-};
-
-#endif \ No newline at end of file
diff --git a/intern/csg/make/msvc60/csg.dsp b/intern/csg/make/msvc60/csg.dsp
deleted file mode 100644
index ae67f505bc3..00000000000
--- a/intern/csg/make/msvc60/csg.dsp
+++ /dev/null
@@ -1,234 +0,0 @@
-# Microsoft Developer Studio Project File - Name="csg" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=csg - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "csg.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "csg.mak" CFG="csg - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "csg - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "csg - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "csg - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\..\..\obj\windows\intern\bsp\"
-# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\bsp\"
-# PROP Target_Dir ""
-LINK32=link.exe -lib
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /G6 /MT /W3 /GX /I "../../intern/blender" /I "../../extern" /I "../../intern" /I "../../../../../lib/windows/memutil/include" /I "../.." /I "../../../../../lib/windows/moto/include" /I"..\..\..\moto\include" /I"..\..\..\memutil" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c
-# ADD BASE RSC /l 0x413 /d "NDEBUG"
-# ADD RSC /l 0x413 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\bsp\libbsp.lib"
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Cmds=ECHO Copying header files XCOPY /E /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\bsp\include\ ECHO Copying lib XCOPY /E /Y ..\..\..\..\obj\windows\intern\bsp\*.lib ..\..\..\..\lib\windows\bsp\lib\*.a ECHO Done
-# End Special Build Tool
-
-!ELSEIF "$(CFG)" == "csg - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\..\..\obj\windows\intern\bsp\debug\"
-# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\bsp\debug\"
-# PROP Target_Dir ""
-LINK32=link.exe -lib
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../intern/blender" /I "../../extern" /I "../../intern" /I "../../../../../lib/windows/memutil/include" /I "../.." /I "../../../../../lib/windows/moto/include" /I"..\..\..\moto\include" /I"..\..\..\memutil" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c
-# ADD BASE RSC /l 0x413 /d "_DEBUG"
-# ADD RSC /l 0x413 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\bsp\debug\libbsp.lib"
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Cmds=ECHO Copying header files XCOPY /E /Y ..\..\extern\*.h ..\..\..\..\..\lib\windows\bsp\include\ ECHO Copying lib XCOPY /E /Y ..\..\..\..\obj\windows\intern\bsp\debug\*.lib ..\..\..\..\..\lib\windows\bsp\lib\debug\*.a ECHO Copying Debug info. XCOPY /E /Y ..\..\..\..\obj\windows\intern\bsp\debug\vc60.* ..\..\..\..\..\lib\windows\bsp\lib\debug\ ECHO Done
-# End Special Build Tool
-
-!ENDIF
-
-# Begin Target
-
-# Name "csg - Win32 Release"
-# Name "csg - Win32 Debug"
-# Begin Group "AABBTree"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_BBox.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_BBoxTree.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_BBoxTree.h
-# End Source File
-# End Group
-# Begin Group "inlines"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_ConnectedMeshWrapper.inl
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_Math.inl
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_Triangulate.inl
-# End Source File
-# End Group
-# Begin Group "blender"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\intern\blender\CSG_BlenderMesh.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\blender\CSG_BlenderVProp.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_BlenderVProp.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\blender\CSG_CsgOp.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\blender\CSG_CsgOp.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\blender\CSG_Interface.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\extern\CSG_Interface.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\blender\CSG_MeshBuilder.h
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_BooleanOp.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_BooleanOp.inl
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_ConnectedMesh.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_CVertex.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_GeometryBinder.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_IndexDefs.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_Math.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_Mesh.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_MeshCopier.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_MeshWrapper.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_MeshWrapper.inl
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_Polygon.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_SplitFunction.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_TreeQueries.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_Triangulate.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\CSG_Vertex.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\MT_Line3.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\intern\MT_Line3.h
-# End Source File
-# End Target
-# End Project
diff --git a/intern/csg/make/msvc60/csg.dsw b/intern/csg/make/msvc60/csg.dsw
deleted file mode 100644
index 7f9bd29b97a..00000000000
--- a/intern/csg/make/msvc60/csg.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "csg"=.\csg.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/intern/keymaker/Makefile b/intern/keymaker/Makefile
deleted file mode 100644
index 703482a851b..00000000000
--- a/intern/keymaker/Makefile
+++ /dev/null
@@ -1,92 +0,0 @@
-#
-# $Id$
-# ***** BEGIN GPL/BL DUAL 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. The Blender
-# Foundation also sells licenses for use in proprietary software under
-# the Blender License. See http://www.blender.org/BL/ for information
-# about this.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): Hans Lambermont
-#
-# ***** END GPL/BL DUAL LICENSE BLOCK *****
-# blender keyreader-library makefile
-#
-
-LIBNAME = blenkey
-SOURCEDIR = intern/$(LIBNAME)
-DIR = $(OCGDIR)/$(SOURCEDIR)
-CSRCS = mt19937int.c key.c
-
-ALLTARGETS = $(OBJS)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_2_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_OPENSSL)/include -Ipython/
-
-include nan_link.mk
-
-# OBJS is for the library, set by nan_compile.mk
-LOADER_OBJS = $(DIR)/$(DEBUG_DIR)keyloader.o
-
-ifneq ($(OS),windows)
- LIBS = $(NAN_OPENSSL)/lib/libcrypto.a
-else
- ifeq ($(FREE_WINDOWS),true)
- LIBS = $(NAN_OPENSSL)/lib/libcrypto.a
- else
- LIBS = $(NAN_OPENSSL)/lib/libeay32.lib
- LIBS += advapi32.lib gdi32.lib
- endif
-endif
-
-all debug:: link
-
-link: $(DIR)/$(DEBUG_DIR)keyloader
-
-strip:
- ifneq ($(OS),windows)
- strip keyloader
- @ls -la keyloader
- else
- @ls -la keyloader.exe
- endif
-
-install: all debug
- @[ -d $(LCGDIR)/$(LIBNAME) ] || mkdir $(LCGDIR)/$(LIBNAME)
- @[ -d $(LCGDIR)/$(LIBNAME)/include ] || mkdir $(LCGDIR)/$(LIBNAME)/include
- @[ -d $(LCGDIR)/$(LIBNAME)/lib ] || mkdir $(LCGDIR)/$(LIBNAME)/lib
- @../tools/cpifdiff.sh blenkey.h $(LCGDIR)/$(LIBNAME)/include/
- @../tools/cpifdiff.sh $(LIB_a) $(LCGDIR)/$(LIBNAME)/lib/
-ifeq ($(OS),darwin)
- ranlib $(LCGDIR)/$(LIBNAME)/lib/lib$(LIBNAME).a
-endif
-
-$(DIR)/$(DEBUG_DIR)keyloader: $(LOADER_OBJS) $(LIB_a)
- $(CC) $(LDFLAGS) -o $@ $(LOADER_OBJS) $(LIB_a) $(LIBS)
-
-clean::
- $(RM) $(DIR)/key* $(DIR)/debug/key*
- $(RM) $(DIR)/nan* $(DIR)/debug/nan*
-
-tags:
- etags *.c *.h
diff --git a/intern/keymaker/blenkey.h b/intern/keymaker/blenkey.h
deleted file mode 100644
index e504fdf62b8..00000000000
--- a/intern/keymaker/blenkey.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * Blender Key loader library external interface
- */
-
-#ifndef BLENKEY_H
-#define BLENKEY_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef unsigned char byte;
-
-typedef struct UserStructType {
- char name[100];
- char email[100];
- char shopid[100];
- unsigned long reldate;
- int keytype; /* 1 = Individual, 2 = Corporate, 3 = Unlimited */
- int keylevel; /* key disclosure level, starts at 1 */
- int keyformat; /* if we change the keyformat, up BLENKEYFORMAT */
-} UserStruct;
-
-char *Hexify(byte *in, unsigned int length);
-byte *DeHexify(char *in);
-
-byte checkfunc0(byte a, byte b);
-byte checkfunc1(byte a, byte b);
-byte checkfunc2(byte a, byte b);
-byte checkfunc3(byte a, byte b);
-byte checkfunc4(byte a, byte b);
-
-/* the byte size of the checksum datablock
-#define MAXBYTEDATABLOCK 1000 */
-
-#define BLENKEYMAGIC "0ce0ba52"
-#define BLENKEYSEPERATOR "---+++---"
-#define BLENKEYFORMAT 1
-
-
-int ReadKeyFile(char *filename, UserStruct *User,
- char **Priv, char **Pub, byte **Byte, char **Python);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* BLENKEY_H */
-
diff --git a/intern/keymaker/key.c b/intern/keymaker/key.c
deleted file mode 100644
index 413ee8b448c..00000000000
--- a/intern/keymaker/key.c
+++ /dev/null
@@ -1,496 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/* ex:ts=4 */
-
-/**
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * Blender Key loader library
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "blenkey.h" /* external interface */
-#include "key_internal.h"
-
-char *Hexify(byte *in, unsigned int length) {
- unsigned int i;
- char Tstring[3];
- char *out = malloc((2*length + 1) * sizeof(char));
- sprintf(out, "%02X", in[0]);
- for (i=1; i<length; i++) {
- sprintf(Tstring, "%02X", in[i]);
- strcat(out, Tstring);
- }
- return (out);
-}
-
-byte *DeHexify(char *in) {
- size_t len = strlen(in);
- byte *out = malloc((len/2) * sizeof(byte));
- unsigned int hexedbyte;
- unsigned int i;
- char *inp = in;
- byte *outp = out;
- for (i=0; i<(len/2); i++) {
- sscanf(inp, "%2x", &hexedbyte);
- inp += 2;
- *outp = (byte) hexedbyte;
- outp++;
- }
- /* printf("\nlen=%d, string=[%s]\n", len, Hexify(out, len/2)); */
- return (out);
-}
-
-int from_hex(char c) {
- return (c<'A') ? (c-'0') : (c-'A'+10);
-}
-
-/* 5 ReadHex helper functions ------------------------------------------
- read one Hex byte (two characters) and skip newlines if necessary */
-byte ReadHexByteFp(FILE *fh, int *newlinetracker) {
- unsigned char a;
- unsigned char a1, a2;
- /* read 2 bytes hexcode of ascii data type */
- fread(&a1, 1, 1, fh);
- fread(&a2, 1, 1, fh);
- a = 16 * (from_hex(a1)) + (from_hex(a2));
- /*printf("Char[%d] = %02X\n", *newlinetracker, a); */
- *newlinetracker += 2;
- /* skip the newlines */
- if (*newlinetracker == 72) {
- fseek(fh, 1, SEEK_CUR);
- *newlinetracker = 0;
- /*printf("LastChar = %02X\n", a); */
- }
- return((byte) a);
-}
-byte ReadHexByteCp(char **from) {
- int a;
- /* read 2 bytes hexcode of ascii data type */
- sscanf(*from, "%2x", &a);
- /*printf("Char = %02X\n", a); */
- *from += 2;
- return((byte) a);
-}
-/* Generic hex2int */
-int HexToInt(int a) {
- if (a == 0x20) /* space, count as 0 ;-) */
- return 0;
- else
- return(a - '0');
-}
-/* Note: this is only to be used for the header type */
-int HexToIntFp(FILE *fh, int *newlinetracker) {
- byte a = ReadHexByteFp(fh, newlinetracker);
- if (DEBUG) printf("%02X = %d\n", a, a); /* note: no HexToInt here */
- return(a);
-}
-int HexToIntCp(char **from) {
- byte a = ReadHexByteCp(from);
- if (DEBUG) printf("%02X = %d\n", a, a); /* note: no HexToInt here */
- return(a);
-}
-/* Note: this is only to be used for the header length */
-int Hex5ToInt(byte a, byte b, byte c, byte d, byte e) {
- return(HexToInt((int) a) * 10000 +
- HexToInt((int) b) * 1000 +
- HexToInt((int) c) * 100 +
- HexToInt((int) d) * 10 +
- HexToInt((int) e));
-}
-/* Note: this is only to be used for the header length */
-int Hex5ToIntFp(FILE *fh, int *newlinetracker) {
- byte a = ReadHexByteFp(fh, newlinetracker),
- b = ReadHexByteFp(fh, newlinetracker),
- c = ReadHexByteFp(fh, newlinetracker),
- d = ReadHexByteFp(fh, newlinetracker),
- e = ReadHexByteFp(fh, newlinetracker);
- if (DEBUG) printf("\n%02X%02X%02X%02X%02X = %d\n", a, b, c, d, e,
- Hex5ToInt(a, b, c, d, e));
- return(Hex5ToInt(a, b, c, d, e));
-}
-int Hex5ToIntCp(char **from) {
- byte a = ReadHexByteCp(from),
- b = ReadHexByteCp(from),
- c = ReadHexByteCp(from),
- d = ReadHexByteCp(from),
- e = ReadHexByteCp(from);
- if (DEBUG) printf("\n%02X%02X%02X%02X%02X = %d\n", a, b, c, d, e,
- Hex5ToInt(a, b, c, d, e));
- return(Hex5ToInt(a, b, c, d, e));
-}
-/* --------------------------------------------------------------------- */
-
-/* return the biggest */
-byte checkfunc0(byte a, byte b) {
- if (a > b) return a;
- else return b;
-}
-/* return |a-b| */
-byte checkfunc1(byte a, byte b) {
- if (a > b) return a - b;
- else return b - a;
-}
-/* return the sum mod 256 */
-byte checkfunc2(byte a, byte b) {
- return ((a + b) % 256);
-}
-/* return the multiplication mod 256 */
-byte checkfunc3(byte a, byte b) {
- return ((a * b) % 256);
-}
-/* return a/b or 0 */
-byte checkfunc4(byte a, byte b) {
- if (b != 0) return (a / b);
- else return 0;
-}
-
-char *scan_ascii(FILE *fh, UserStruct *User) {
- long ascii_size;
- char *ascii_data = NULL;
- char *mdhex = NULL;
- byte md[RIPEMD160_DIGEST_LENGTH];
- char string[1024];
- char dosnewlines = 0;
- int lines = 0;
- int oldftell;
-
- /* NOTE: fscanf is notorious for its buffer overflows. This must be
- fixed some day, consider this a proof-of-concept version. */
-
- fscanf(fh, "%1000[^\n]", string);
- sscanf(string, "%*s %s %s %lu %d %d %d",
- User->email,
- User->shopid,
- &User->reldate,
- &User->keytype,
- &User->keylevel,
- &User->keyformat);
-
- if (User->keyformat <= BLENKEYFORMAT) {
- if (DEBUG) printf(
- "Email:[%s] ShopID:[%s] RelDate:[%lu] KeyType[%d] KeyLevel[%d]\n",
- User->email, User->shopid, User->reldate, User->keytype,
- User->keylevel);
-
- /* read /n/n
- check if we're reading dow newlines...
- */
- oldftell = ftell(fh);
- getc(fh);
- if ((ftell(fh) - oldftell) == 2) {
- /* yes ! */
- dosnewlines = 1;
- }
- getc(fh);
-
- fscanf(fh, "%1000[^\n]", string);
- strncpy(User->name, string, sizeof(User->name) - 1);
-
- if (DEBUG) printf("Name:[%s]\n", User->name);
-
- getc(fh);
-
- /* 4 lines read uptil now... */
- lines = 4;
-
- while (getc(fh) != EOF) {
- fscanf(fh, "%1000[^\n]", string);
- lines++;
- /* if (DEBUG) printf("%s\n", string); */
- if (strcmp(string, BLENKEYSEPERATOR) == 0) {
- getc(fh);
- break;
- }
- }
-
- /* fh now points at the start of the datablock */
- ascii_size = ftell(fh);
-
- if (dosnewlines) {
- /* if we were reading on dos
- ftell will also count the ^M 's in the file;
- substract them
- */
- ascii_size -= lines;
- }
-
- ascii_data = malloc((ascii_size+1) * sizeof(char));
- fseek(fh, 0, SEEK_SET);
- fread(ascii_data, sizeof(char), ascii_size, fh);
- ascii_data[ascii_size] = '\0';
-
- if (DEBUG)
- printf("asciiblock is %ld bytes long:\n[%s]\n", ascii_size, ascii_data);
-
- /* calculate the hash checksum */
- RIPEMD160(ascii_data, ascii_size, md);
- free(ascii_data);
- mdhex = Hexify(md, RIPEMD160_DIGEST_LENGTH);
- }
-
- return(mdhex);
-}
-
-char *ReadHexCryptedData(FILE *fh, int *newlinetracker) {
- int HexCryptedDataLength = Hex5ToIntFp(fh, newlinetracker);
- int DataType = HexToIntFp(fh, newlinetracker);
- char *HexCryptedData = malloc((HexCryptedDataLength+1) * sizeof(char));
- int i;
-
- if (DataType != 1) {
- /* printf("Error: unexpected datatype for HexCryptedData\n"); */
- free(HexCryptedData);
- HexCryptedData = 0;
- } else {
- for (i=0; i<(HexCryptedDataLength/2); i++) {
- sprintf(HexCryptedData+2*i, "%02X", ReadHexByteFp(fh, newlinetracker));
- }
- }
-
- return(HexCryptedData);
-}
-
-char *ReadHexCryptedKey(FILE *fh, int *newlinetracker) {
- int HexCryptedKeyLength = Hex5ToIntFp(fh, newlinetracker);
- int DataType = HexToIntFp(fh, newlinetracker);
- char *HexCryptedKey = malloc((HexCryptedKeyLength+1) * sizeof(char));
- int i;
-
- if (DataType != 2) {
- /* printf("Error: unexpected datatype for HexCryptedKey\n"); */
- free(HexCryptedKey);
- HexCryptedKey = 0;
- } else {
- for (i=0; i<(HexCryptedKeyLength/2); i++) {
- sprintf(HexCryptedKey+2*i, "%02X", ReadHexByteFp(fh, newlinetracker));
- }
- }
-
- return(HexCryptedKey);
-}
-
-/* NOTE: CHANGE THIS INTO A KEY OF OUR OWN */
-void LoadRSApubKey(RSA *Pub) {
- static unsigned char n[] =
-"\xD1\x12\x0C\x6A\x34\x0A\xCF\x4C\x6B\x34\xA9\x3C\xDD\x1A\x2A\x68"
-"\x34\xE5\xB4\xA2\x08\xE8\x9F\xCE\x76\xEF\x4B\x92\x9B\x99\xB4\x57"
-"\x72\x95\x78\x1D\x9E\x21\x1B\xF9\x5C\x1B\x0E\xC9\xD0\x89\x75\x28"
-"\x08\x13\x6A\xD8\xA9\xC2\xA4\x31\x91\x53\x5A\xB9\x26\x71\x8C\x05";
- static unsigned char e[] =
-"\x01\x00\x01";
-/*
- static unsigned char e[] = "\x11";
- static unsigned char n[] =
-"\x00\xAA\x36\xAB\xCE\x88\xAC\xFD\xFF\x55\x52\x3C\x7F\xC4\x52\x3F"
-"\x90\xEF\xA0\x0D\xF3\x77\x4A\x25\x9F\x2E\x62\xB4\xC5\xD9\x9C\xB5"
-"\xAD\xB3\x00\xA0\x28\x5E\x53\x01\x93\x0E\x0C\x70\xFB\x68\x76\x93"
-"\x9C\xE6\x16\xCE\x62\x4A\x11\xE0\x08\x6D\x34\x1E\xBC\xAC\xA0\xA1"
-"\xF5";
-*/
-
- Pub->e = BN_bin2bn(e, sizeof(e)-1, Pub->e);
- Pub->n = BN_bin2bn(n, sizeof(n)-1, Pub->n);
-}
-
-byte *RSADecryptKey(char *HexCryptedKey) {
- byte *CryptedKey = NULL;
- byte *Key = NULL;
- int KeyLen;
- int CryptedKeyLen = strlen(HexCryptedKey)/2;
- RSA *Pub = NULL;
-
- /* Load RSA public key */
- Pub = RSA_new();
- if (Pub == NULL) {
- /* printf("Error in RSA_new\n"); */
- } else {
- LoadRSApubKey(Pub);
-
- Key = malloc(RSA_size(Pub) * sizeof(byte));
-
- CryptedKey = DeHexify(HexCryptedKey);
-
- KeyLen = RSA_public_decrypt(CryptedKeyLen, CryptedKey, Key, Pub,
- RSA_PKCS1_PADDING);
- if (DEBUG)
- printf("CryptedKeyLen = %d, KeyLen = %d\n", CryptedKeyLen, KeyLen);
- if (KeyLen == -1) {
-#ifndef NDEBUG
- printf("Error in RSA_public_decrypt: %s\n", ERR_error_string(ERR_get_error(), NULL));
-#endif
- free(Key);
- Key = NULL;
- }
- }
-
- return (Key);
-}
-
-char *DeCryptDatablock(byte *CryptKey, int keylen, char *HexCryptedData) {
- RC4_KEY key;
- byte *CryptedData = DeHexify(HexCryptedData);
- unsigned int datalen = strlen(HexCryptedData)/2;
- char *KeyDataString = malloc(datalen * sizeof(char));
-
- RC4_set_key(&key, keylen, CryptKey);
- RC4(&key, datalen, CryptedData, KeyDataString);
- free(CryptedData);
-
- return(KeyDataString);
-}
-
-char *get_from_datablock(char **DataPtr, char *TypeString) {
- int tstringsize = Hex5ToIntCp(DataPtr);
- int tstringtype = HexToIntCp(DataPtr);
- char *HexString = NULL;
-
- if (atoi(TypeString) != tstringtype) {
- /* printf("Unexpected type %d, expected %s\n", tstringtype, TypeString); */
- } else {
- HexString = malloc((tstringsize+1) * sizeof(char));
-
- strncpy(HexString, *DataPtr, tstringsize);
- *DataPtr += tstringsize;
- HexString[tstringsize] = '\0';
- }
-
- return(HexString);
-}
-
-int ReadKeyFile(char *filename, UserStruct *User,
- char **Priv, char **Pub, byte **Byte, char **Python) {
- FILE *rawkeyfile;
- char *HexAsciiHash = NULL, *HexCryptedData = NULL, *HexCryptedKey =
- NULL;
- int newlinetracker = 0; /* line position, counts from 0-71 */
- byte *CryptKey = NULL;
- char *KeyDataString = NULL;
- char *KeyDataPtr = NULL;
- char *HexByte = NULL;
- char *mdhex = NULL;
- int ret_val = 1;
-
- if ((rawkeyfile = fopen(filename, "rb")) == NULL) {
- /* printf("error, cannot read %s\n", filename); */
- } else {
- /* Scan and interpret the ASCII part */
- HexAsciiHash = scan_ascii(rawkeyfile, User);
- if (DEBUG) printf("\nHexHash: %s\n", HexAsciiHash);
-
- /* Read the HexCryptedData */
- HexCryptedData = ReadHexCryptedData(rawkeyfile, &newlinetracker);
- if (DEBUG) printf("\nHexCryptedData: %s\n", HexCryptedData);
-
- /* Read the HexCryptedKey */
- HexCryptedKey = ReadHexCryptedKey(rawkeyfile, &newlinetracker);
- if (DEBUG) printf("\nHexCryptedKey: %s\n", HexCryptedKey);
-
- /* close keyfile */
- fclose(rawkeyfile);
-
- if (HexAsciiHash && HexCryptedKey && HexCryptedData) {
- /* Decrypt HexCryptedKey */
- CryptKey = RSADecryptKey(HexCryptedKey);
-
- if (CryptKey) {
- /* Decrypt HexCryptedData */
- KeyDataString = DeCryptDatablock(CryptKey, 16, HexCryptedData);
- free(CryptKey);
- CryptKey = NULL;
-
- if (KeyDataString) {
- if (DEBUG) printf("\nKeyDataString: %s\n", KeyDataString);
-
- /* Extract data from KeyDataString */
- KeyDataPtr = KeyDataString;
- mdhex = get_from_datablock(&KeyDataPtr, "01");
- *Priv = get_from_datablock(&KeyDataPtr, "02");
- *Pub = get_from_datablock(&KeyDataPtr, "03");
- HexByte = get_from_datablock(&KeyDataPtr, "04");
- if (HexByte) {
- *Byte = DeHexify(HexByte);
- free(HexByte);
- HexByte = NULL;
-
- *Python = get_from_datablock(&KeyDataPtr, "05");
-
- /* Check ascii hash */
- if (strcmp(mdhex, HexAsciiHash) != 0) {
- /* printf("Ascii part checksums do not match !\n");
- printf("found: %s\n", mdhex);
- printf("check: %s\n", HexAsciiHash);
- */
- ret_val = 2;
- } else {
- if (DEBUG) printf("\nThe ascii part checksum matches\n");
- /* everything ok ! */
- ret_val = 0;
- }
- free(mdhex);
- mdhex = NULL;
- }
-
- free(KeyDataString);
- KeyDataString = NULL;
- }
- }
- }
-
- /* cleanup */
-
- if (HexAsciiHash) {
- free(HexAsciiHash);
- HexAsciiHash = NULL;
- }
-
- if (HexCryptedKey) {
- free(HexCryptedKey);
- HexCryptedKey = NULL;
- }
-
- if (HexCryptedData) {
- free(HexCryptedData);
- HexCryptedData = NULL;
- }
- }
-
- return (ret_val);
-}
-
diff --git a/intern/keymaker/key_internal.h b/intern/keymaker/key_internal.h
deleted file mode 100644
index 2bd60b9e9d8..00000000000
--- a/intern/keymaker/key_internal.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/* ex:ts=4 */
-
-/**
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * Blender Key loader library internal stuff
- */
-
-#include "openssl/rand.h"
-#include "openssl/rsa.h"
-#include "openssl/ripemd.h"
-#include "openssl/rc4.h"
-#include "openssl/err.h"
-#include "blenkey.h"
-
-#include "mt19937int.h" /* Mersenne Twister (under artistic license) */
-
-#define MAXASCIIBLOCK 1000
-#define MAXBYTEDATABLOCK 1000
-
-#ifdef NDEBUG
- #define DEBUG 0
-#else
- #define DEBUG 1
-#endif
-
-/* keyloader and keymaker internal prototypes */
-int from_hex(char c);
-byte ReadHexByteFp(FILE *fh, int *newlinetracker);
-byte ReadHexByteCp(char **from);
-int HexToInt(int a);
-int HexToIntFp(FILE *fh, int *newlinetracker);
-int HexToIntCp(char **from);
-int Hex5ToInt(byte a, byte b, byte c, byte d, byte e);
-int Hex5ToIntFp(FILE *fh, int *newlinetracker);
-int Hex5ToIntCp(char **from);
-void pub_priv_test(char *HexPriv, char *HexPub);
-int main(int argc, char **argv);
-
-/* keyloader only internal prototypes */
-char *scan_ascii(FILE *fh, UserStruct *User);
-char *ReadHexCryptedData(FILE *fh, int *newlinetracker);
-char *ReadHexCryptedKey(FILE *fh, int *newlinetracker);
-void LoadRSApubKey(RSA *Pub);
-byte *RSADecryptKey(char *HexCryptedKey);
-char *DeCryptDatablock(byte *CryptKey, int keylen, char *HexCryptedData);
-char *get_from_datablock(char **DataPtr, char *TypeString);
-int Check_All_Byte_Calculus_Data(char *KeyBytePtr);
-
-/* keymaker only internal prototypes */
-void usage(void);
-char *Create_Ascii_Part(int argc, char **argv);
-void Create_User_RSA_Keys(unsigned int keylength,
- char **rsaPrivString, char **rsaPubString);
-char *Create_Byte_Calculus_Data(void);
-byte *CreateCryptKey(unsigned int size);
-char *CryptDatablock(byte *CryptKey, int keylen, char *KeyDataString);
-char *RSACryptKey(RSA *rsa, byte *CryptKey, int KeyLen);
-void add_to_datablock(char **DataString, char *HexString, char *TypeString);
-void LoadRSAprivKey(RSA *Priv);
-
diff --git a/intern/keymaker/keyloader.c b/intern/keymaker/keyloader.c
deleted file mode 100644
index 878ed319cb5..00000000000
--- a/intern/keymaker/keyloader.c
+++ /dev/null
@@ -1,319 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/* ex:ts=4 */
-
-/**
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * Blender Key Read-tester
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "key_pyc.h" /* the Python byte code */
-#include "blenkey.h" /* the external interface */
-#include "key_internal.h"
-
-#define TESTReadKeyFile 1
-
-int Check_All_Byte_Calculus_Data(char *KeyBytePtr) {
- int i;
-
- /* create some unique number arrays */
- int NoRealRandomArray[MAXBYTEDATABLOCK];
-
- typedef byte (*funcpoin)(byte, byte);
- funcpoin checkfunc[] = {&checkfunc0, &checkfunc1, &checkfunc2,
- &checkfunc3, &checkfunc4};
-
- byte *KeyByteData = DeHexify(KeyBytePtr);
-
- /* first create a fixed seed random number generator */
- sgenrand(666); /* seed it fixed */
-
- /* initialize arrays with unique numbers */
- for (i=0; i<MAXBYTEDATABLOCK; i++) {
- NoRealRandomArray[i] = i;
- }
- /* then stir the unique number lists */
- for (i=0; i<MAXBYTEDATABLOCK; i++) {
- unsigned long randswap = genrand();
- int swap1 = (int) (randswap % MAXBYTEDATABLOCK);
- int swap2 = (int) ((randswap>>16) % MAXBYTEDATABLOCK);
- int store = NoRealRandomArray[swap1];
- /* printf("%lu %d %d\n", randswap, swap1, swap2); */
- NoRealRandomArray[swap1] = NoRealRandomArray[swap2];
- NoRealRandomArray[swap2] = store;
- }
- if (DEBUG) {
- printf("\nFixed seed unique number random data: ");
- for (i=0; i<MAXBYTEDATABLOCK; i++) {
- printf("%d ", NoRealRandomArray[i]);
- }
- printf("\n\n");
- }
-
- /* check our byte calculus functions on the random data */
- for (i=0; i<(MAXBYTEDATABLOCK-3); i+=3) {
- if (DEBUG) {
- char *Pcheckfunc[] = {"max", " - ", " + ", " * ", " / "};
- printf("[%3d]=[%3d]%s[%3d] ",
- NoRealRandomArray[i], NoRealRandomArray[i+1],
- Pcheckfunc[NoRealRandomArray[i]%5], NoRealRandomArray[i+2]);
- printf("%3d%s%3d: %3d == %3d\n",
- KeyByteData[NoRealRandomArray[i+1]],
- Pcheckfunc[NoRealRandomArray[i]%5],
- KeyByteData[NoRealRandomArray[i+2]],
- KeyByteData[NoRealRandomArray[i]],
- checkfunc[(NoRealRandomArray[i]%5)](
- KeyByteData[NoRealRandomArray[i+1]],
- KeyByteData[NoRealRandomArray[i+2]]));
- }
- if (KeyByteData[NoRealRandomArray[i]] !=
- checkfunc[(NoRealRandomArray[i]%5)](
- KeyByteData[NoRealRandomArray[i+1]],
- KeyByteData[NoRealRandomArray[i+2]])) {
- printf("\nByte Checksum failed !\n");
- return (1);
- }
- }
- return (0);
-}
-
-void pub_priv_test(char *HexPriv, char *HexPub)
-{
- RSA *rsa = NULL;
- /* static unsigned char rsa_e[] = "\x11"; */
- static unsigned char rsa_e[] = "\x01\x00\x01";
- byte cryptKey[16];
- byte *cryptedKey;
- byte *pubKey, *privKey;
- int pubKeyLen, privKeyLen;
- int deCryptKeyLen;
- unsigned char *deCryptKey;
- int cryptKeyLen = 16;
- int cryptedKeyLen;
-
- strcpy(cryptKey, "abcdefghijklmno");
-
- pubKey = DeHexify(HexPub);
- pubKeyLen = strlen(HexPub) / 2;
-
- privKey = DeHexify(HexPriv);
- privKeyLen = strlen(HexPriv) / 2;
-
- rsa = RSA_new();
- if (rsa == NULL) {
- fprintf(stderr, "Error in RSA_new\n");
- exit(1);
- }
- rsa->e = BN_bin2bn(rsa_e, sizeof(rsa_e)-1, rsa->e);
- rsa->n = BN_bin2bn(pubKey, pubKeyLen, rsa->n);
- rsa->d = BN_bin2bn(privKey, privKeyLen, rsa->d);
-
- fprintf(stderr, "NOTE e %d, n %d, d %d rsa_size %d\n",
- sizeof(rsa_e)-1, pubKeyLen, privKeyLen, RSA_size(rsa));
-
- cryptedKey = malloc(RSA_size(rsa) * sizeof(byte));
- cryptedKeyLen = RSA_private_encrypt(cryptKeyLen, cryptKey,
- cryptedKey, rsa, RSA_PKCS1_PADDING);
-
- deCryptKey = malloc(RSA_size(rsa) * sizeof(unsigned char));
- deCryptKeyLen = RSA_public_decrypt(cryptedKeyLen, cryptedKey,
- deCryptKey, rsa, RSA_PKCS1_PADDING);
- if (deCryptKeyLen == -1) {
- printf("Error in RSA_public_decrypt: %s\n",
- ERR_error_string(ERR_get_error(), NULL));
- exit(1);
- } else {
- printf("RSA_public_decrypt test SUCCEEDED\n");
- }
-
-}
-
-#ifdef TESTReadKeyFile
-int main(int argc, char **argv) {
- int result;
- UserStruct User;
- char *HexPriv = NULL, *HexPub = NULL, *HexPython = NULL;
- byte *Byte = NULL;
- byte *PythonData = NULL;
- int PythonLength;
- char *HexByte = NULL;
-
- if (argc != 2) {
- printf("usage: %s keyfile\n", argv[0]);
- exit(1);
- }
-
- result = ReadKeyFile(argv[1], &User, &HexPriv, &HexPub, &Byte, &HexPython);
- if (result != 0) {
- printf("\nReadKeyFile error %d\n", result);
- exit(result);
- } else {
- printf("\nReadKeyFile OK\n");
- }
-
- /* just print the rsaPrivString and rsaPubString */
- if (DEBUG) printf("\nrsaPrivString: %s\n", HexPriv);
- if (DEBUG) printf("\nrsaPubString: %s\n", HexPub);
-
- /* try to private encrypt-public decrypt something */
- if (DEBUG) pub_priv_test(HexPriv, HexPub);
-
- /* check all the Byte checksums
- rehexify it for our Check_All_Byte_Calculus_Data function ... */
- HexByte = Hexify(Byte, 1000);
- if (Check_All_Byte_Calculus_Data(HexByte) != 0) {
- printf("\nByte_Calculus_Data checksums do not match !\n");
- exit(1);
- } else {
- if (DEBUG) printf("\nThe Byte Calculus Data checksums match\n");
- }
-
- /* Check the KeyPythonPtr */
- PythonLength = strlen(HexPython)/2;
- PythonData = DeHexify(HexPython);
- if (memcmp(PythonData, g_keycode, PythonLength) != 0) {
- printf("\nPython Byte code datablocks do not match !\n");
- exit(1);
- } else {
- if (DEBUG) printf("\nThe Python Byte code datablock matches\n");
- }
-
- return(0);
-}
-#else
-int main(int argc, char **argv) {
- FILE *rawkeyfile;
- char *AsciiHash;
- char *HexCryptedData, *HexCryptedKey;
- int newlinetracker = 0; /* line position, counts from 0-71 */
- byte *CryptKey;
- char *KeyDataString;
- char *KeyDataPtr;
- char *mdhex;
- char *rsaPrivString;
- char *rsaPubString;
- char *KeyBytePtr;
- char *KeyPythonPtr;
- byte *PythonData;
- int PythonLength;
- UserStruct User;
-
- if (argc != 2) {
- printf("usage: %s keyfile\n", argv[0]);
- exit(1);
- }
-
- /* open keyfile for reading */
- if ((rawkeyfile = fopen(argv[1], "r")) == NULL) {
- printf("error, cannot read %s\n", argv[1]);
- exit(1);
- }
-
- /* Scan and interpret the ASCII part */
- AsciiHash = scan_ascii(rawkeyfile, &User);
- if (DEBUG) printf("\nHexHash: %s\n", AsciiHash);
-
- /* Read the HexCryptedData */
- HexCryptedData = ReadHexCryptedData(rawkeyfile, &newlinetracker);
- if (DEBUG) printf("\nHexCryptedData: %s\n", HexCryptedData);
-
- /* Read the HexCryptedKey */
- HexCryptedKey = ReadHexCryptedKey(rawkeyfile, &newlinetracker);
- if (DEBUG) printf("\nHexCryptedKey: %s\n", HexCryptedKey);
-
- /* close keyfile */
- fclose(rawkeyfile);
-
- /* Decrypt HexCryptedKey */
- CryptKey = RSADecryptKey(HexCryptedKey);
-
- /* Decrypt HexCryptedData */
- KeyDataString = DeCryptDatablock(CryptKey, 16, HexCryptedData);
- free(CryptKey);
- free(HexCryptedData);
- free(HexCryptedKey);
- if (DEBUG) printf("\nKeyDataString: %s\n", KeyDataString);
-
- /* Extract data from KeyDataString */
- KeyDataPtr = KeyDataString;
-
- mdhex = get_from_datablock(&KeyDataPtr, "01");
- rsaPrivString = get_from_datablock(&KeyDataPtr, "02");
- rsaPubString = get_from_datablock(&KeyDataPtr, "03");
- KeyBytePtr = get_from_datablock(&KeyDataPtr, "04");
- KeyPythonPtr = get_from_datablock(&KeyDataPtr, "05");
- free(KeyDataString);
-
- /* Check ascii hash */
- if (strcmp(mdhex, AsciiHash) != 0) {
- printf("Ascii part checksums do not match !\n");
- printf("found: %s\n", mdhex);
- printf("check: %s\n", AsciiHash);
- exit(1);
- } else {
- if (DEBUG) printf("\nThe ascii part checksum matches\n");
- }
-
- /* just print the rsaPrivString and rsaPubString */
- if (DEBUG) printf("\nrsaPrivString: %s\n", rsaPrivString);
- if (DEBUG) printf("\nrsaPubString: %s\n", rsaPubString);
-
- /* check all the Byte checksums */
- if (Check_All_Byte_Calculus_Data(KeyBytePtr) != 0) {
- printf("Byte_Calculus_Data checksums do not match !\n");
- exit(1);
- } else {
- if (DEBUG) printf("\nThe Byte Calculus Data checksums match\n");
- }
-
- /* Check the KeyPythonPtr */
- PythonLength = strlen(KeyPythonPtr)/2;
- PythonData = DeHexify(KeyPythonPtr);
- if (memcmp(PythonData, g_keycode, PythonLength) != 0) {
- printf("Python Byte code datablocks do not match !\n");
- exit(1);
- } else {
- if (DEBUG) printf("\nThe Python Byte code datablock matches\n");
- }
-
- return(0);
-}
-#endif
diff --git a/intern/keymaker/make/msvc_6_0/blenkey.dsp b/intern/keymaker/make/msvc_6_0/blenkey.dsp
deleted file mode 100644
index 4cc63f9fc24..00000000000
--- a/intern/keymaker/make/msvc_6_0/blenkey.dsp
+++ /dev/null
@@ -1,134 +0,0 @@
-# Microsoft Developer Studio Project File - Name="blenkey" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=blenkey - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "blenkey.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "blenkey.mak" CFG="blenkey - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "blenkey - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "blenkey - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "blenkey - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\..\..\obj\windows\intern\blenkey\"
-# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\blenkey\"
-# PROP Target_Dir ""
-LINK32=link.exe -lib
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\.." /I "..\..\..\..\..\lib\windows\openssl\include" /I "..\..\python" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\blenkey\libblenkey.lib"
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\blenkey.h ..\..\..\..\..\lib\windows\blenkey\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\blenkey\*.lib ..\..\..\..\..\lib\windows\blenkey\lib\*.a ECHO Done
-# End Special Build Tool
-
-!ELSEIF "$(CFG)" == "blenkey - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\..\..\obj\windows\intern\blenkey\debug"
-# PROP Intermediate_Dir "..\..\..\..\obj\windows\intern\blenkey\debug"
-# PROP Target_Dir ""
-LINK32=link.exe -lib
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\..\..\..\lib\windows\openssl\include" /I "..\..\python" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\..\obj\windows\intern\blenkey\debug\libblenkey.lib"
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Cmds=ECHO Copying header files XCOPY /Y ..\..\blenkey.h ..\..\..\..\..\lib\windows\blenkey\include\ ECHO Copying lib XCOPY /Y ..\..\..\..\obj\windows\intern\blenkey\debug\*.lib ..\..\..\..\..\lib\windows\blenkey\lib\debug\*.a
-# End Special Build Tool
-
-!ENDIF
-
-# Begin Target
-
-# Name "blenkey - Win32 Release"
-# Name "blenkey - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\..\key.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\keyloader.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\mt19937int.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Group "intern"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\key_internal.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\mt19937int.h
-# End Source File
-# End Group
-# Begin Group "extern"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\blenkey.h
-# End Source File
-# End Group
-# End Group
-# End Target
-# End Project
diff --git a/intern/keymaker/make/msvc_6_0/blenkey.dsw b/intern/keymaker/make/msvc_6_0/blenkey.dsw
deleted file mode 100644
index 4d97144c6ed..00000000000
--- a/intern/keymaker/make/msvc_6_0/blenkey.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "blenkey"=".\blenkey.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/intern/keymaker/make/msvc_7_0/blenkey.sln b/intern/keymaker/make/msvc_7_0/blenkey.sln
deleted file mode 100644
index 5ddf040506e..00000000000
--- a/intern/keymaker/make/msvc_7_0/blenkey.sln
+++ /dev/null
@@ -1,21 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 7.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "blenkey", "blenkey.vcproj", "{E8AF94A5-15FC-432C-9FFD-68D9CD642488}"
-EndProject
-Global
- GlobalSection(SolutionConfiguration) = preSolution
- ConfigName.0 = Debug
- ConfigName.1 = Release
- EndGlobalSection
- GlobalSection(ProjectDependencies) = postSolution
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {E8AF94A5-15FC-432C-9FFD-68D9CD642488}.Debug.ActiveCfg = Debug|Win32
- {E8AF94A5-15FC-432C-9FFD-68D9CD642488}.Debug.Build.0 = Debug|Win32
- {E8AF94A5-15FC-432C-9FFD-68D9CD642488}.Release.ActiveCfg = Release|Win32
- {E8AF94A5-15FC-432C-9FFD-68D9CD642488}.Release.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
diff --git a/intern/keymaker/make/msvc_7_0/blenkey.vcproj b/intern/keymaker/make/msvc_7_0/blenkey.vcproj
deleted file mode 100644
index df24f3da382..00000000000
--- a/intern/keymaker/make/msvc_7_0/blenkey.vcproj
+++ /dev/null
@@ -1,282 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.10"
- Name="blenkey"
- SccProjectName=""
- SccLocalPath="">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Blender Debug|Win32"
- OutputDirectory="..\..\..\..\..\build\msvc_7\intern\blenkey\debug"
- IntermediateDirectory="..\..\..\..\..\build\msvc_7\intern\blenkey\debug"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..;..\..\python;..\..\..\..\..\lib\windows\openssl\include"
- PreprocessorDefinitions="WIN32,_DEBUG,_LIB"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile="..\..\..\..\..\build\msvc_7\intern\blenkey\debug\blenkey.pch"
- AssemblerListingLocation="..\..\..\..\..\build\msvc_7\intern\blenkey\debug\"
- ObjectFile="..\..\..\..\..\build\msvc_7\intern\blenkey\debug\"
- ProgramDataBaseFileName="..\..\..\..\..\build\msvc_7\intern\blenkey\debug\"
- WarningLevel="2"
- SuppressStartupBanner="TRUE"
- DebugInformationFormat="3"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile="..\..\..\..\..\build\msvc_7\libs\intern\debug\libblenkey.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"
- Description="Copying BLENKEY files library (debug target) to lib tree"
- CommandLine="ECHO Copying header files
-IF NOT EXIST ..\..\..\..\..\build\msvc_7\intern\blenkey\include MKDIR ..\..\..\..\..\build\msvc_7\intern\blenkey\include
-XCOPY /Y ..\..\blenkey.h ..\..\..\..\..\build\msvc_7\intern\blenkey\include
-ECHO Done
-"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1033"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Blender Release|Win32"
- OutputDirectory="..\..\..\..\..\build\msvc_7\intern\blenkey"
- IntermediateDirectory="..\..\..\..\..\build\msvc_7\intern\blenkey"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\..;..\..\python;..\..\..\..\..\lib\windows\openssl\include"
- PreprocessorDefinitions="WIN32,NDEBUG,_LIB"
- StringPooling="TRUE"
- RuntimeLibrary="0"
- EnableFunctionLevelLinking="TRUE"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile="..\..\..\..\..\build\msvc_7\intern\blenkey\blenkey.pch"
- AssemblerListingLocation="..\..\..\..\..\build\msvc_7\intern\blenkey\"
- ObjectFile="..\..\..\..\..\build\msvc_7\intern\blenkey\"
- ProgramDataBaseFileName="..\..\..\..\..\build\msvc_7\intern\blenkey\"
- WarningLevel="2"
- SuppressStartupBanner="TRUE"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile="..\..\..\..\..\build\msvc_7\libs\intern\libblenkey.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"
- Description="Copying BLENKEY files library to lib tree"
- CommandLine="ECHO Copying header files
-IF NOT EXIST ..\..\..\..\..\build\msvc_7\intern\blenkey\include MKDIR ..\..\..\..\..\build\msvc_7\intern\blenkey\include
-XCOPY /Y ..\..\blenkey.h ..\..\..\..\..\build\msvc_7\intern\blenkey\include
-ECHO Done
-"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1033"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="3DPlugin Release|Win32"
- OutputDirectory="..\..\..\..\..\build\msvc_7\intern\blenkey\mtdll"
- IntermediateDirectory="..\..\..\..\..\build\msvc_7\intern\blenkey\mtdll"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\..;..\..\python;..\..\..\..\..\lib\windows\openssl\include"
- PreprocessorDefinitions="WIN32,NDEBUG,_LIB"
- StringPooling="TRUE"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="TRUE"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile="..\..\..\..\..\build\msvc_7\intern\blenkey\mtdll\blenkey.pch"
- AssemblerListingLocation="..\..\..\..\..\build\msvc_7\intern\blenkey\mtdll\"
- ObjectFile="..\..\..\..\..\build\msvc_7\intern\blenkey\mtdll\"
- ProgramDataBaseFileName="..\..\..\..\..\build\msvc_7\intern\blenkey\mtdll\"
- WarningLevel="2"
- SuppressStartupBanner="TRUE"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile="..\..\..\..\..\build\msvc_7\libs\intern\mtdll\libblenkey.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"
- Description="Copying BLENKEY files library to lib tree"
- CommandLine="ECHO Copying header files
-IF NOT EXIST ..\..\..\..\..\build\msvc_7\intern\blenkey\include MKDIR ..\..\..\..\..\build\msvc_7\intern\blenkey\include
-XCOPY /Y ..\..\blenkey.h ..\..\..\..\..\build\msvc_7\intern\blenkey\include
-ECHO Done
-"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1033"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="3DPlugin Debug|Win32"
- OutputDirectory="..\..\..\..\..\build\msvc_7\intern\blenkey\mtdll\debug"
- IntermediateDirectory="..\..\..\..\..\build\msvc_7\intern\blenkey\mtdll\debug"
- ConfigurationType="4"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\..;..\..\python;..\..\..\..\..\lib\windows\openssl\include"
- PreprocessorDefinitions="WIN32,_DEBUG,_LIB"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile="..\..\..\..\..\build\msvc_7\intern\blenkey\mtdll\debug\blenkey.pch"
- AssemblerListingLocation="..\..\..\..\..\build\msvc_7\intern\blenkey\mtdll\debug\"
- ObjectFile="..\..\..\..\..\build\msvc_7\intern\blenkey\mtdll\debug\"
- ProgramDataBaseFileName="..\..\..\..\..\build\msvc_7\intern\blenkey\mtdll\debug\"
- WarningLevel="2"
- SuppressStartupBanner="TRUE"
- DebugInformationFormat="3"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLibrarianTool"
- OutputFile="..\..\..\..\..\build\msvc_7\libs\intern\mtdll\debug\libblenkey.lib"
- SuppressStartupBanner="TRUE"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"
- Description="Copying BLENKEY files library (debug target) to lib tree"
- CommandLine="ECHO Copying header files
-IF NOT EXIST ..\..\..\..\..\build\msvc_7\intern\blenkey\include MKDIR ..\..\..\..\..\build\msvc_7\intern\blenkey\include
-XCOPY /Y ..\..\blenkey.h ..\..\..\..\..\build\msvc_7\intern\blenkey\include
-ECHO Done
-"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1033"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
- <File
- RelativePath="..\..\key.c">
- </File>
- <File
- RelativePath="..\..\keyloader.c">
- </File>
- <File
- RelativePath="..\..\mt19937int.c">
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl">
- <Filter
- Name="intern"
- Filter="">
- <File
- RelativePath="..\..\key_internal.h">
- </File>
- <File
- RelativePath="..\..\mt19937int.h">
- </File>
- </Filter>
- <Filter
- Name="extern"
- Filter="">
- <File
- RelativePath="..\..\blenkey.h">
- </File>
- </Filter>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/intern/keymaker/mt19937int.c b/intern/keymaker/mt19937int.c
deleted file mode 100644
index 9481a48aade..00000000000
--- a/intern/keymaker/mt19937int.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* A C-program for MT19937: Integer version (1999/10/28) */
-
-/* genrand() generates one pseudorandom unsigned integer (32bit) */
-/* which is uniformly distributed among 0 to 2^32-1 for each */
-/* call. sgenrand(seed) sets initial values to the working area */
-/* of 624 words. Before genrand(), sgenrand(seed) must be */
-/* called once. (seed is any 32-bit integer.) */
-/* Coded by Takuji Nishimura, considering the suggestions by */
-/* Topher Cooper and Marc Rieffel in July-Aug. 1997. */
-
-/* This library is free software under the Artistic license: */
-/* see the file COPYING distributed together with this code. */
-/* For the verification of the code, its output sequence file */
-/* mt19937int.out is attached (2001/4/2) */
-
-/* Copyright (C) 1997, 1999 Makoto Matsumoto and Takuji Nishimura. */
-/* Any feedback is very welcome. For any question, comments, */
-/* see http://www.math.keio.ac.jp/matumoto/emt.html or email */
-/* matumoto@math.keio.ac.jp */
-
-/* REFERENCE */
-/* M. Matsumoto and T. Nishimura, */
-/* "Mersenne Twister: A 623-Dimensionally Equidistributed Uniform */
-/* Pseudo-Random Number Generator", */
-/* ACM Transactions on Modeling and Computer Simulation, */
-/* Vol. 8, No. 1, January 1998, pp 3--30. */
-
-#include<stdio.h>
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "mt19937int.h"
-
-/* Period parameters */
-#define N 624
-#define M 397
-#define MATRIX_A 0x9908b0df /* constant vector a */
-#define UPPER_MASK 0x80000000 /* most significant w-r bits */
-#define LOWER_MASK 0x7fffffff /* least significant r bits */
-
-/* Tempering parameters */
-#define TEMPERING_MASK_B 0x9d2c5680
-#define TEMPERING_MASK_C 0xefc60000
-#define TEMPERING_SHIFT_U(y) (y >> 11)
-#define TEMPERING_SHIFT_S(y) (y << 7)
-#define TEMPERING_SHIFT_T(y) (y << 15)
-#define TEMPERING_SHIFT_L(y) (y >> 18)
-
-static unsigned long mt[N]; /* the array for the state vector */
-static int mti=N+1; /* mti==N+1 means mt[N] is not initialized */
-
-/* Initializing the array with a seed */
-void sgenrand(signed long seed)
-{
- int i;
-
- for (i=0;i<N;i++) {
- mt[i] = seed & 0xffff0000;
- seed = 69069 * seed + 1;
- mt[i] |= (seed & 0xffff0000) >> 16;
- seed = 69069 * seed + 1;
- }
- mti = N;
-}
-
-/* Initialization by "sgenrand()" is an example. Theoretically, */
-/* there are 2^19937-1 possible states as an intial state. */
-/* This function allows to choose any of 2^19937-1 ones. */
-/* Essential bits in "seed_array[]" is following 19937 bits: */
-/* (seed_array[0]&UPPER_MASK), seed_array[1], ..., seed_array[N-1]. */
-/* (seed_array[0]&LOWER_MASK) is discarded. */
-/* Theoretically, */
-/* (seed_array[0]&UPPER_MASK), seed_array[1], ..., seed_array[N-1] */
-/* can take any values except all zeros. */
-void lsgenrand(unsigned long *seed_array)
- /* the length of seed_array[] must be at least N */
-{
- int i;
-
- for (i=0;i<N;i++)
- mt[i] = seed_array[i];
- mti=N;
-}
-
-unsigned long genrand()
-{
- unsigned long y;
- static unsigned long mag01[2]={0x0, MATRIX_A};
- /* mag01[x] = x * MATRIX_A for x=0,1 */
-
- if (mti >= N) { /* generate N words at one time */
- int kk;
-
- if (mti == N+1) /* if sgenrand() has not been called, */
- sgenrand(4357); /* a default initial seed is used */
-
- for (kk=0;kk<N-M;kk++) {
- y = (mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK);
- mt[kk] = mt[kk+M] ^ (y >> 1) ^ mag01[y & 0x1];
- }
- for (;kk<N-1;kk++) {
- y = (mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK);
- mt[kk] = mt[kk+(M-N)] ^ (y >> 1) ^ mag01[y & 0x1];
- }
- y = (mt[N-1]&UPPER_MASK)|(mt[0]&LOWER_MASK);
- mt[N-1] = mt[M-1] ^ (y >> 1) ^ mag01[y & 0x1];
-
- mti = 0;
- }
-
- y = mt[mti++];
- y ^= TEMPERING_SHIFT_U(y);
- y ^= TEMPERING_SHIFT_S(y) & TEMPERING_MASK_B;
- y ^= TEMPERING_SHIFT_T(y) & TEMPERING_MASK_C;
- y ^= TEMPERING_SHIFT_L(y);
-
- return y;
-}
-
-/* This main() outputs first 1000 generated numbers. */
-/*
-main()
-{
- int i;
-
- sgenrand(4357);
- for (i=0; i<1000; i++) {
- printf("%10lu ", genrand());
- if (i%5==4) printf("\n");
- }
-}
-*/
diff --git a/intern/keymaker/mt19937int.h b/intern/keymaker/mt19937int.h
deleted file mode 100644
index e49c7bc3a27..00000000000
--- a/intern/keymaker/mt19937int.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/* ex:ts=4 */
-
-/**
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * Mersenne Twister prototypes
- */
-
-/* external: */
-void sgenrand(signed long seed);
-unsigned long genrand(void);
-
-/* internal: */
-void lsgenrand(unsigned long *seed_array);
-
diff --git a/intern/keymaker/python/key_pyc.h b/intern/keymaker/python/key_pyc.h
deleted file mode 100644
index 16dd15f6e86..00000000000
--- a/intern/keymaker/python/key_pyc.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/**
- * $Id$
- * ***** BEGIN GPL/BL DUAL 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
- */
-
-/* generated by keygen.py -- don't edit !! */
-
-
-#define KEYCODELEN 1157
-static unsigned char g_keycode[] = {
- 0x63,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x73,
- 0xb3,0x00,0x00,0x00,0x7f,0x00,0x00,0x7f,0x02,0x00,
- 0x64,0x00,0x00,0x6b,0x00,0x00,0x5a,0x00,0x00,0x7f,
- 0x06,0x00,0x64,0x01,0x00,0x84,0x00,0x00,0x5a,0x01,
- 0x00,0x7f,0x09,0x00,0x64,0x02,0x00,0x84,0x00,0x00,
- 0x5a,0x02,0x00,0x7f,0x11,0x00,0x64,0x03,0x00,0x84,
- 0x00,0x00,0x5a,0x03,0x00,0x7f,0x1c,0x00,0x65,0x00,
- 0x00,0x69,0x04,0x00,0x83,0x00,0x00,0x5a,0x05,0x00,
- 0x7f,0x1d,0x00,0x7f,0x21,0x00,0x65,0x00,0x00,0x69,
- 0x06,0x00,0x83,0x00,0x00,0x5a,0x07,0x00,0x7f,0x22,
- 0x00,0x65,0x08,0x00,0x65,0x07,0x00,0x83,0x01,0x00,
- 0x5a,0x09,0x00,0x7f,0x23,0x00,0x65,0x03,0x00,0x65,
- 0x09,0x00,0x83,0x01,0x00,0x01,0x7f,0x24,0x00,0x78,
- 0x39,0x00,0x65,0x0a,0x00,0x65,0x07,0x00,0x83,0x01,
- 0x00,0x64,0x04,0x00,0x7f,0x24,0x00,0x72,0x26,0x00,
- 0x5a,0x0b,0x00,0x7f,0x25,0x00,0x65,0x00,0x00,0x69,
- 0x0c,0x00,0x65,0x09,0x00,0x65,0x0b,0x00,0x19,0x65,
- 0x00,0x00,0x69,0x0d,0x00,0x65,0x0b,0x00,0x83,0x01,
- 0x00,0x83,0x02,0x00,0x01,0x71,0x82,0x00,0x57,0x64,
- 0x00,0x00,0x53,0x28,0x05,0x00,0x00,0x00,0x4e,0x63,
- 0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x73,0x1c,
- 0x00,0x00,0x00,0x7f,0x06,0x00,0x7f,0x07,0x00,0x7f,
- 0x08,0x00,0x7c,0x00,0x00,0x7c,0x01,0x00,0x7c,0x02,
- 0x00,0x66,0x03,0x00,0x61,0x03,0x00,0x64,0x00,0x00,
- 0x53,0x28,0x01,0x00,0x00,0x00,0x4e,0x28,0x04,0x00,
- 0x00,0x00,0x73,0x01,0x00,0x00,0x00,0x61,0x73,0x01,
- 0x00,0x00,0x00,0x62,0x73,0x01,0x00,0x00,0x00,0x63,
- 0x73,0x05,0x00,0x00,0x00,0x5f,0x73,0x65,0x65,0x64,
- 0x28,0x03,0x00,0x00,0x00,0x73,0x01,0x00,0x00,0x00,
- 0x61,0x73,0x01,0x00,0x00,0x00,0x62,0x73,0x01,0x00,
- 0x00,0x00,0x63,0x73,0x08,0x00,0x00,0x00,0x3c,0x73,
- 0x74,0x72,0x69,0x6e,0x67,0x3e,0x73,0x04,0x00,0x00,
- 0x00,0x73,0x65,0x65,0x64,0x06,0x00,0x73,0x04,0x00,
- 0x00,0x00,0x03,0x01,0x03,0x01,0x63,0x00,0x00,0x03,
- 0x00,0x03,0x00,0x03,0x00,0x73,0x70,0x00,0x00,0x00,
- 0x7f,0x09,0x00,0x7f,0x0a,0x00,0x7f,0x0b,0x00,0x74,
- 0x00,0x00,0x5c,0x03,0x00,0x7d,0x00,0x00,0x7d,0x01,
- 0x00,0x7d,0x02,0x00,0x7f,0x0c,0x00,0x64,0x01,0x00,
- 0x7c,0x00,0x00,0x14,0x64,0x02,0x00,0x16,0x7d,0x00,
- 0x00,0x7f,0x0d,0x00,0x64,0x03,0x00,0x7c,0x01,0x00,
- 0x14,0x64,0x04,0x00,0x16,0x7d,0x01,0x00,0x7f,0x0e,
- 0x00,0x64,0x05,0x00,0x7c,0x02,0x00,0x14,0x64,0x06,
- 0x00,0x16,0x7d,0x02,0x00,0x7f,0x0f,0x00,0x7c,0x00,
- 0x00,0x7c,0x01,0x00,0x7c,0x02,0x00,0x66,0x03,0x00,
- 0x61,0x00,0x00,0x7f,0x10,0x00,0x7c,0x00,0x00,0x7c,
- 0x01,0x00,0x17,0x7c,0x02,0x00,0x17,0x53,0x64,0x00,
- 0x00,0x53,0x28,0x07,0x00,0x00,0x00,0x4e,0x69,0xab,
- 0x00,0x00,0x00,0x69,0x3d,0x76,0x00,0x00,0x69,0xac,
- 0x00,0x00,0x00,0x69,0x63,0x76,0x00,0x00,0x69,0xaa,
- 0x00,0x00,0x00,0x69,0x73,0x76,0x00,0x00,0x28,0x04,
- 0x00,0x00,0x00,0x73,0x05,0x00,0x00,0x00,0x5f,0x73,
- 0x65,0x65,0x64,0x73,0x01,0x00,0x00,0x00,0x61,0x73,
- 0x01,0x00,0x00,0x00,0x62,0x73,0x01,0x00,0x00,0x00,
- 0x63,0x28,0x03,0x00,0x00,0x00,0x73,0x01,0x00,0x00,
- 0x00,0x61,0x73,0x01,0x00,0x00,0x00,0x62,0x73,0x01,
- 0x00,0x00,0x00,0x63,0x73,0x08,0x00,0x00,0x00,0x3c,
- 0x73,0x74,0x72,0x69,0x6e,0x67,0x3e,0x73,0x09,0x00,
- 0x00,0x00,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x69,0x7a,
- 0x65,0x09,0x00,0x73,0x0e,0x00,0x00,0x00,0x03,0x01,
- 0x03,0x01,0x12,0x01,0x11,0x01,0x11,0x01,0x11,0x01,
- 0x12,0x01,0x63,0x01,0x00,0x06,0x00,0x06,0x00,0x03,
- 0x00,0x73,0x8b,0x00,0x00,0x00,0x7f,0x11,0x00,0x7f,
- 0x13,0x00,0x74,0x00,0x00,0x7c,0x00,0x00,0x83,0x01,
- 0x00,0x7d,0x01,0x00,0x7f,0x14,0x00,0x78,0x6f,0x00,
- 0x74,0x03,0x00,0x7c,0x01,0x00,0x83,0x01,0x00,0x64,
- 0x01,0x00,0x7f,0x14,0x00,0x72,0x5c,0x00,0x7d,0x02,
- 0x00,0x7f,0x15,0x00,0x7c,0x01,0x00,0x7c,0x02,0x00,
- 0x18,0x7d,0x03,0x00,0x7f,0x16,0x00,0x74,0x06,0x00,
- 0x74,0x07,0x00,0x83,0x00,0x00,0x7c,0x03,0x00,0x16,
- 0x83,0x01,0x00,0x7d,0x04,0x00,0x7f,0x17,0x00,0x7c,
- 0x00,0x00,0x7c,0x02,0x00,0x19,0x7d,0x05,0x00,0x7f,
- 0x18,0x00,0x7c,0x00,0x00,0x7c,0x02,0x00,0x7c,0x04,
- 0x00,0x17,0x19,0x7c,0x00,0x00,0x7c,0x02,0x00,0x3c,
- 0x7f,0x19,0x00,0x7c,0x05,0x00,0x7c,0x00,0x00,0x7c,
- 0x02,0x00,0x7c,0x04,0x00,0x17,0x3c,0x71,0x24,0x00,
- 0x57,0x64,0x00,0x00,0x53,0x28,0x02,0x00,0x00,0x00,
- 0x4e,0x69,0x00,0x00,0x00,0x00,0x28,0x0a,0x00,0x00,
- 0x00,0x73,0x03,0x00,0x00,0x00,0x6c,0x65,0x6e,0x73,
- 0x04,0x00,0x00,0x00,0x6c,0x69,0x73,0x74,0x73,0x04,
- 0x00,0x00,0x00,0x73,0x69,0x7a,0x65,0x73,0x06,0x00,
- 0x00,0x00,0x78,0x72,0x61,0x6e,0x67,0x65,0x73,0x01,
- 0x00,0x00,0x00,0x69,0x73,0x04,0x00,0x00,0x00,0x6c,
- 0x65,0x66,0x74,0x73,0x03,0x00,0x00,0x00,0x69,0x6e,
- 0x74,0x73,0x09,0x00,0x00,0x00,0x72,0x61,0x6e,0x64,
- 0x6f,0x6d,0x69,0x7a,0x65,0x73,0x01,0x00,0x00,0x00,
- 0x72,0x73,0x03,0x00,0x00,0x00,0x74,0x6d,0x70,0x28,
- 0x06,0x00,0x00,0x00,0x73,0x04,0x00,0x00,0x00,0x6c,
- 0x69,0x73,0x74,0x73,0x04,0x00,0x00,0x00,0x73,0x69,
- 0x7a,0x65,0x73,0x01,0x00,0x00,0x00,0x69,0x73,0x04,
- 0x00,0x00,0x00,0x6c,0x65,0x66,0x74,0x73,0x01,0x00,
- 0x00,0x00,0x72,0x73,0x03,0x00,0x00,0x00,0x74,0x6d,
- 0x70,0x73,0x08,0x00,0x00,0x00,0x3c,0x73,0x74,0x72,
- 0x69,0x6e,0x67,0x3e,0x73,0x04,0x00,0x00,0x00,0x73,
- 0x74,0x69,0x72,0x11,0x00,0x73,0x10,0x00,0x00,0x00,
- 0x03,0x02,0x0f,0x01,0x12,0x00,0x09,0x01,0x0d,0x01,
- 0x16,0x01,0x0d,0x01,0x15,0x01,0x69,0x00,0x00,0x00,
- 0x00,0x28,0x0e,0x00,0x00,0x00,0x73,0x04,0x00,0x00,
- 0x00,0x70,0x72,0x6f,0x74,0x73,0x04,0x00,0x00,0x00,
- 0x73,0x65,0x65,0x64,0x73,0x09,0x00,0x00,0x00,0x72,
- 0x61,0x6e,0x64,0x6f,0x6d,0x69,0x7a,0x65,0x73,0x04,
- 0x00,0x00,0x00,0x73,0x74,0x69,0x72,0x73,0x07,0x00,
- 0x00,0x00,0x67,0x65,0x74,0x73,0x65,0x65,0x64,0x73,
- 0x05,0x00,0x00,0x00,0x5f,0x73,0x65,0x65,0x64,0x73,
- 0x06,0x00,0x00,0x00,0x67,0x65,0x74,0x6c,0x65,0x6e,
- 0x73,0x01,0x00,0x00,0x00,0x6e,0x73,0x05,0x00,0x00,
- 0x00,0x72,0x61,0x6e,0x67,0x65,0x73,0x04,0x00,0x00,
- 0x00,0x6c,0x69,0x73,0x74,0x73,0x06,0x00,0x00,0x00,
- 0x78,0x72,0x61,0x6e,0x67,0x65,0x73,0x01,0x00,0x00,
- 0x00,0x69,0x73,0x06,0x00,0x00,0x00,0x73,0x65,0x74,
- 0x70,0x74,0x72,0x73,0x06,0x00,0x00,0x00,0x67,0x65,
- 0x74,0x70,0x74,0x72,0x28,0x00,0x00,0x00,0x00,0x73,
- 0x08,0x00,0x00,0x00,0x3c,0x73,0x74,0x72,0x69,0x6e,
- 0x67,0x3e,0x73,0x01,0x00,0x00,0x00,0x3f,0x02,0x00,
- 0x73,0x16,0x00,0x00,0x00,0x0f,0x04,0x0c,0x03,0x0c,
- 0x08,0x0c,0x0b,0x0f,0x01,0x03,0x04,0x0f,0x01,0x0f,
- 0x01,0x0d,0x01,0x12,0x00,0x09,0x01
-};
-