###############################################################################
                   C4D++  by Remotion  (Igor Schulz)
                    for C4D R15 on Windows x64
###############################################################################                    
           
  C4D++ is a interactive console that allow you to directly execute C++14 code using C4D API.         
                    
###############################################################################

  Plese remove older "c4dpp_api" directory from "C:\MAXON\CINEMA_4D\resource" or where you c4d is located.
  
###############################################################################

 Updated to C4D R15 SDK. (__LEGACY_API is used for now.)
 
 Almost all parts of C4D SDK should now work
 Exceptions are Thinking Particles SDK and some Libraries.

 Here are some of the recent additions.
 "Edit Mode", if this mode is on then command promt will not be cleared.
 "Script Log..." this will log common c4d actions (command) and try to translate them to C++ code.
  
 New following functions.

 Run Python Script
  bool PyRun(const String& code);  

 Run C++ Code using the same interpreter !
  bool CppRun(const String& code, bool scoped=true);

 Now it should be possible to throw simple exceptions from the interpreter and catch them in C4D++.
 For example:
  throw 11;
  throw "some string";
  
 Right now it is not possible to catch them in interpreter it self.
###############################################################################
 
 Drag and Drop support to the command promt.
 Many other internal changes and improvements.
 
 C++14 support should be there now.
 A bit less problems and bugs, but probably still many.

###############################################################################

	Requirements:
	
	1:	C4D main folder and plugins folder need to be writable !!!
			Example:
				"C:\MAXON\CINEMA_4D_R14\plugins\C4DPP_R15" must be writable !!!
				"C:\MAXON\CINEMA_4D_R14\resource" must be writable !!!

	2:  CodeEditorGUI is necessary too !!!
	http://code.google.com/p/code-editor-gui/downloads/list
	
	3:   Please remove  old  c4dpp_api folder from C4D resource folder !!!
	
	4:   Make sure that every path in  Edit -> Preferences... ->  C4D++ Prefs is valid !!!
		Especially "Compiler Dir0" and "TempDir"!
		"TempDir" should point to writable directory !!!
		
		Args1:   -Wdeprecated-declarations -Wno-unused-value -Wmicrosoft 
		Args2:	 -fms-extensions -fms-compatibility -fmsc-version=1600 -fno-rtti
		
		All other compile arguments should be empty per default.
		

###############################################################################

	If VS120COMNTOOLS is set then Visual Studio 2013 headers will be used.
	If there is no Visual Studio 2013 then headers in \utils34\VC will be used.

###############################################################################

res\scripts\  contains some C++ "scripts".

###############################################################################
As you may know the C++ REPL is based on Cling.

Here are some special commands for the REPL.
 .version		-  print Calng version to the console.
 .cls   -   clear console.
 .clear -   clear console.
 .q 		-  restart, reset REPL.
 .!			-  start/end raw input mode.
 .rawInput	-  start/end raw input mode.
 .x filename.cxx - loads filename and calls void filename() if defined
 .I path - adds an include path
 

The most important is  .! or .rawInput.
In this mode you can define function or classes.

.!   //start raw Input mode.

auto my_function(int i) -> int { return i / 2; }

.!	 //end raw Input mode.

###############################################################################

bool RePrint(const String& str);   is predefined ad allow to print to the REPL console.

C4DPrintPublic.h   in included per default and allow to use print(...); wint any argument count.

###############################################################################

