Hi. I develop the OctaneRender for Rhino plugin, and would love to migrate the plugin to OSX. I ran http://www.mono-project.com/MoMA to the plugin RHI and it reported a lot of errors - predominantly due to the use of System.Runtime.InteropServices.DllImportAttribute() - required for the C# code to interface to the Octane dll. Do you think this will be a showstopper?
I don’t think that is a showstopper. This is exactly what we do with RhinoCommon. There are many DLLImports in RhinoCommon for calling into native code. You will need to be able to compile an Octane.dylib which is the C++ equivalent of Octane.dll on Mac. I believe @dale is putting together a sample plug-in that uses a native library on Mac.
so does this mean you guys are dropping cuda or at least incorporating openCL as an alternative?
or am i misreading/misassuming/misinterpreting the fact that you want octane for rhino on mac?
thanks
so does this mean you guys are dropping cuda or at least incorporating openCL as an alternative? or am i misreading/misassuming/misinterpreting the fact that you want octane for rhino on mac?
Hi - I have installed Xamariin Studio on OSX Mavericks (and RhinoWIP, which works nicely). I initially went to install on my Win dev PC, but got very nervous about what it was going to updated (Android SDK, Java, etc) - and I didn’t want to run the risk of corrupting my dev environment. So I installed on OSX instead.
I opened my existing C# .NET RhinoCommon project and worked through a few minor issues (the csprog file was referring to some Window folders that didn’t exist on OSX). The main issue now is that…
using Rhino.Render.UI;
…will not compile. I cannot find the right Reference for it. I have included Eto, Rhino.UI, RhinoCommon, RhinoMac. Is there something I am missing pls?
Hey Paul, I;m sorry I didn’t mention it. Much of the Render namespace is missing from RhinoCommon on Mac because we were never able to get a full implementation on the underlying RDK in place for the initial release of Mac Rhino.
It would be helpful for @andy and me to know which classes/functions in the Render.UI namespace you are calling on the Windows version so we can at least focus our effort on those pieces.
As a test, I compiled the Octane plugin on Win7 using Xamarin, and it runs under Rhino (for Windows). So partial success!
Compiling the plugin on Xamarin for Mac, I get the following errors:
error CS0234: The type or namespace name `UI' does not exist in the namespace `Rhino.Render'. Are you missing an assembly reference?
error CS0234: The type or namespace name `Fields' does not exist in the namespace `Rhino.Render'. Are you missing an assembly reference?
error CS0246: The type or namespace name `IUserInterfaceSection' could not be found. Are you missing an assembly reference?
error CS0246: The type or namespace name `RenderMaterial' could not be found. Are you missing an assembly reference?
error CS0246: The type or namespace name `RenderPipeline' could not be found. Are you missing an assembly reference?
error CS0246: The type or namespace name `UserInterfaceSection' could not be found. Are you missing an assembly reference?
error CS0246: The type or namespace name `RenderContent' could not be found. Are you missing an assembly reference?
error CS0246: The type or namespace name `UserInterfaceSection' could not be found. Are you missing an assembly reference?
error CS0115: `PhysicalcSoftware.OctaneRender.RhinoPlugin.OctaneRenderMaterial.TypeName' is marked as an override but no suitable property found to override
error CS0115: `PhysicalcSoftware.OctaneRender.RhinoPlugin.OctaneRenderMaterial.TypeDescription' is marked as an override but no suitable property found to override
error CS0115: `PhysicalcSoftware.OctaneRender.RhinoPlugin.OctaneRenderMaterial.Icon(System.Drawing.Size)' is marked as an override but no suitable method found to override
error CS0115: `PhysicalcSoftware.OctaneRender.RhinoPlugin.OctaneRenderMaterial.OnAddUserInterfaceSections()' is marked as an override but no suitable method found to override
error CS0115: `PhysicalcSoftware.OctaneRender.RhinoPlugin.OctaneRenderMaterial.SimulateMaterial(ref Rhino.DocObjects.Material, bool)' is marked as an override but no suitable method found to override
error CS0246: The type or namespace name `RenderMaterial' could not be found. Are you missing an assembly reference?
error CS0246: The type or namespace name `CreatePreviewEventArgs' could not be found. Are you missing an assembly reference?
error CS0234: The type or namespace name `RenderWindow' does not exist in the namespace `Rhino.Render'. Are you missing an assembly reference?
error CS0115: `PhysicalcSoftware.OctaneRender.RhinoPlugin.OctaneRenderForRhinoPlugIn.OctaneRenderPipeline.OnRenderBegin()' is marked as an override but no suitable method found to override
error CS0115: `PhysicalcSoftware.OctaneRender.RhinoPlugin.OctaneRenderForRhinoPlugIn.OctaneRenderPipeline.ContinueModal()' is marked as an override but no suitable method found to override
error CS0246: The type or namespace name `RenderEndEventArgs' could not be found. Are you missing an assembly reference?
error CS0115: `PhysicalcSoftware.OctaneRender.RhinoPlugin.OctaneRenderForRhinoPlugIn.OctaneRenderPipeline.OnRenderWindowBegin(Rhino.Display.RhinoView, System.Drawing.Rectangle)' is marked as an override but no suitable method found to override
error CS1715: `PhysicalcSoftware.OctaneRender.RhinoPlugin.OctaneRenderForRhinoPlugIn.CustomOptionPage.PageControl': type must be `object' to match overridden member `Rhino.UI.StackedDialogPage.PageControl'
/Users/paul/Downloads/Rhino/../../../../Applications/RhinoWIP.app/Contents/Resources/RhinoCommon.dll (Location of the symbol related to previous error)
error CS0246: The type or namespace name `RenderWindow' could not be found. Are you missing an assembly reference?
error CS0426: The nested type `RenderContentTableEventArgs' does not exist in the type `Rhino.RhinoDoc'
error CS0234: The type or namespace name `RenderContentEventArgs' does not exist in the namespace `Rhino.Render'. Are you missing an assembly reference?
error CS0234: The type or namespace name `RenderContentChangedEventArgs' does not exist in the namespace `Rhino.Render'. Are you missing an assembly reference?
Thanks for the post and the exciting release of this new opportunity.
I finally got over the biggest obstacle of testing my plugin build for Mac (that is the purchase of a Mac computer).
Some pretty exciting news that I’ve now been able to build and test the import of an IFC file in the Mac build. Here’s an image .
The guides are good. It’s not clear to me how Xamarin knows to debug the assembly (with Windows you explicitly nominate) and I have had some problems with debugging my project but I think if I can screen share with Steve or yourself we might resolve this. Note that I didn’t start this project from the Xamarin wizard, it was a copy of an existing windows project.
Anyway, it’s great news. I still need to enable ETO versions of my dialogs and build the other plugins. If there are any interested users, please get in touch.
Wow, glad to hear that was the biggest obstacle! (Not to down-play the price of a Mac these days).
This is awesome news. I think this may be the first screenshots we’ve seen of a 3rd-party Rhino for Mac plugin.
We do some trickery on the Rhino-side to look in some common search-paths for the plugin itself…this adds some convenience should be able to debug and run the plugin without having to explicitly load the plugin itself.
Yes, let’s get this sorted out together.
Very cool. I presume you only needed to change your references a little…or?
Hopefully, porting to ETO will be as easy as the rest of the process.
Very, very good news. Thanks the screenshots. Looks like we’ll need to ship 5.1 soon!
I’m a user rather than a developer but I cannot emphasise enough how important rendering plugins will be. We are an architect start up and recently purchased 2 licenses of rhino for Mac. Saying that, I’ve been using it for almost the entire time the development version has been available. I’ve used the windows version fairly extensively too.
The ability to render directly from the same app you are modelling in makes the workflow so much more streamlined.
Mcneel - please prioritise this. I really hope we are talking months not years before the rendering plugins start to become available.
This includes the BullAnt plugin with computational geometry tools such as geodesic domes, mesh relaxation, mesh inflation and many more. It also includes ggRhinoIFC to import and export IFC files.
It runs great on a Mac, as the standalone. The plugin would be nice for convenience, but the standalone is far more polished for controls (both Mac and windows) Perhaps (let’s hope) the Mac version Plugin would one-up the Windows Rhino Plugin in terms of interface design quality.
Awesome Jon! I do believe this is the first public announcement of a Rhino for Mac plugin. Cool!
We have been making a couple of last-minute changes to the RhinoCommon API - mostly adding back some functionality that was removed - and we did bump the version number of RhinoCommon in Rhino for Mac. So - with the “official” 5.1 update to Rhino for Mac - there will be a version compatibility error with what you currently have posted…but you know, that’s an easy fix: just open the sln and rebuild. Sorry about that! Such is life when you’re as far ahead of the curve as you are.
I am getting 51 of these errors everytime I open WIP. The commands are still there. I may just uninstall, because it is a bit annoying. How would I do that, just go into plugins and delete it?