A list of resources which developers found helpful in learning programing languages, methods, or tips and tricks as they might apply for programing for Rhino. Please add resources that you have found useful in the appropriate section, or if an appropriate section does not exist, please feel free to add it.
There are a bunch of fantastic resources avalible for learning RhinoScript, most of them are located on the RhinoScript Wiki page.
In order to write plug-ins for Rhino using the standard SDK, you first need to learn the C++ programing language itself.
Sam says: This is a fantastic intro to C++ book for people with little or no programing experience. Although this book looks intimidating (1224 pages), it has a nice slow pace for beginners so you don't start feeling lost. The author has a very friendly writing style, and the projects in the book progress at a pace slow enough so it is understandable, but not so slow as to be boring (for a beginner)
The Rhino SDK is heavily based on MFC (Microsoft Foundation Class), which is a set of libraries from Microsoft, included with the Standard and Professional versions of Visual Studio (it is not included in the Express edition) which handle things like creating windows and writing files to disk. An understanding of MFC will make understanding Rhino plug-ins a much simpler task.
Sam says: Note - in this review I am going to replace the double plus at the end of C with (plus plus) because the wiki is interpreting the pluses as code. I started with a book that was geared to a more experienced audience and quickly got discouraged thinking that I would never understand MFC. Introduction to MFC Programming with Visual C(plus plus) is exactly what it says, an introduction. It won't teach you everything, but if you are just starting out with MFC and have a decent understanding of C(plus plus) (I am doing fine so far with this book only having read C(plus plus) Primer Plus) it is a great first step into MFC. The book starts you out writing simple console applications (which if you start with something like the Prata book, will be very familiar to you by this point) and starts adding small portions of MFC bit by bit so you don't get overwhelmed. One note about this book is that it's very first example program it has you try to use cout with a CString, which cout does not understand, so instead of seeing your string output, you only see it's memory address, which is not a great way to start the book off, but beyond that it has been good.
by Jeff Prosise
Sam Says: This is the book I tried to start with learning MFC, and I quickly got lost with it. I personally don't think this a book for absolute beginners, but rather people who are very familiar with programing for Windows (using the Windows API) but need to learn MFC. Having forced my way through part of it before setting it aside and starting with the MFC intro book, I can see that it would be a very valuable resource down the line as I learn more. This book covers what I would consider some of the more complex aspects of MFC such as versioning and threading. My only (silly) gripe with this book is that my copy at least, the binding is terrible, and the book is now in about 10 different pieces (although binding a 1376 page hardcover can't be easy)
If you wish to write plug-ins for the Rhino.NET SDK, you will need to understand a .NET compatible programming language like VB.NET or C#
by James D. Foley
Dale Fugier says: Another book worth having…
by Les A. Piegl, Wayne Tiller
by David F. Rogers
Jonathan Chertok says: “My experience was that the Piegle/Tiller book was oriented towards mathematicians and quite technical. The Rogers book had some moderately interesting historical info which I had run across previously, and some technical but not very well laid out mathematics…(you're probably just as well off to use the 'cs.helsinki' link or the 'apple…schneider' articles in Web resources below).”
The following diagram, posted on the plug-ins newsgroup by Rajaa Issa, gives a overview of B-rep objects in the context of opennurbs