Site Tools


Get Mapping Information From Object

Developer: FlamingoScript
Summary: Demonstrates how to get Flamingo nXt mapping information from an object.

Question

I am trying to figure if an object contains Flamingo mapping information and what the mapping values are. What can I do?

Answer

The following are examples of how to extract the Flamingo nXt mapping information associated with an object.

RhinoScript

Mapping Origin

Option Explicit
 
Call Main()
 
Sub Main()
	Dim objPlugIn, strObject, origin
	On Error Resume Next
	Set objPlugIn = Rhino.GetPluginObject("8008880f-8d13-4b2d-92b0-727e12878a4c")
	If Err Then
		MsgBox Err.Description
		Exit Sub
	End If
	strObject = Rhino.GetObject("Select object")
  If Not IsNull(strObject) And Not strObject = "" Then
  	origin = objPlugIn.GetMappingOrigin(strObject)
	  If IsNull(origin) Then
      Rhino.Print("Object has no mapping data")
    Else
      Rhino.Print("Object mapping origin: " & Rhino.Pt2Str(origin))
    End If
	End If
	Set objPlugIn = Nothing
End Sub

Mapping Scale

Option Explicit
 
Call Main()
 
Sub Main()
	Dim objPlugIn, strObject, scale
	On Error Resume Next
	Set objPlugIn = Rhino.GetPluginObject("8008880f-8d13-4b2d-92b0-727e12878a4c")
	If Err Then
		MsgBox Err.Description
		Exit Sub
	End If
	strObject = Rhino.GetObject("Select object")
  If Not IsNull(strObject) And Not strObject = "" Then
  	scale = objPlugIn.GetMappingScale(strObject)
	  If IsNull(scale) Then
      Rhino.Print("Object has no mapping data")
    Else
      Rhino.Print("Object mapping x-scale: " & scale(0) & "  y-scale: " & scale(1) & "  z-scale:" & scale(2))
    End If
	End If
	Set objPlugIn = Nothing
End Sub

Mapping Type

Option Explicit
 
Call Main()
 
Sub Main()
	Dim objPlugIn, strObject, mappingType, strMappingType
	On Error Resume Next
	Set objPlugIn = Rhino.GetPluginObject("8008880f-8d13-4b2d-92b0-727e12878a4c")
	If Err Then
		MsgBox Err.Description
		Exit Sub
	End If
	strObject = Rhino.GetObject("Select object")
  If Not IsNull(strObject) And Not strObject = "" Then
		mappingType = objPlugIn.GetMappingType(strObject)
    If Not IsNull(mappingType) And mappingType >= 0 Then
      strMappingType = "unknown"
      If mappingType = 0 Then
        strMappingType = "Default"
      ElseIf mappingType = 1 Then
        strMappingType = "Box"
      ElseIf mappingType = 2 Then
        strMappingType = "Cylindrical"
      ElseIf mappingType = 3 Then
        strMappingType = "Spherical"
      ElseIf mappingType = 4 Then
        strMappingType = "Planar"
      ElseIf mappingType = 5 Then
        strMappingType = "UV"
      ElseIf mappingType = 6 Then
        strMappingType = "Equirectangular"
      ElseIf mappingType = 7 Then
        strMappingType = "None"
      End If
      Rhino.Print("Object mapping type: " & strMappingType)
    Else
      Rhino.Print("Object has no mapping data")
		End If
	End If
	Set objPlugIn = Nothing
End Sub

Mapping X-Axis

Option Explicit
 
Call Main()
 
Sub Main()
	Dim objPlugIn, strObject, axis
	On Error Resume Next
	Set objPlugIn = Rhino.GetPluginObject("8008880f-8d13-4b2d-92b0-727e12878a4c")
	If Err Then
		MsgBox Err.Description
		Exit Sub
	End If
	strObject = Rhino.GetObject("Select object")
  If Not IsNull(strObject) And Not strObject = "" Then
  	axis = objPlugIn.GetMappingXAxis(strObject)
	  If IsNull(axis) Then
      Rhino.Print("Object has no mapping data")
    Else
      Rhino.Print("Object mapping x-axis: " & Rhino.Pt2Str(axis))
    End If
	End If
	Set objPlugIn = Nothing
End Sub

Mapping Z-Axis

Option Explicit
 
Call Main()
 
Sub Main()
	Dim objPlugIn, strObject, axis
	On Error Resume Next
	Set objPlugIn = Rhino.GetPluginObject("8008880f-8d13-4b2d-92b0-727e12878a4c")
	If Err Then
		MsgBox Err.Description
		Exit Sub
	End If
	strObject = Rhino.GetObject("Select object")
  If Not IsNull(strObject) And Not strObject = "" Then
  	axis = objPlugIn.GetMappingZAxis(strObject)
	  If IsNull(axis) Then
      Rhino.Print("Object has no mapping data")
    Else
      Rhino.Print("Object mapping z-axis: " & Rhino.Pt2Str(axis))
    End If
	End If
	Set objPlugIn = Nothing
End Sub

Python

import clr
# Load the Flamingo nXt SDK DLL
clr.AddReference("FlamingoNXtSDK")
import FlamingoNXtSDK
import rhinoscriptsyntax as rs
# Get the Flamingo nXt plug-in's SDK implimentaion, this will force the
# plug-in to load if it is not currently loaded
flSDK = FlamingoNXtSDK.SDK.FlamingoSDK
 
def GetMappingType():
    objID = rs.GetObject()
    if not objID: return
    result, mapping = flSDK.GetMappingType(objID)
    if result: print "Mapping: \"", mapping, "\""
    else: print "No mapping assignment found"
 
if __name__=="__main__":
    GetMappingType()

C#

using System;
 
using Rhino;
using Rhino.DocObjects;
using Rhino.Input;
using Rhino.Commands;
 
using FlamingoNXtSDK;
 
partial class Examples
{
  public static Result GetObjectMappingOrigin(RhinoDoc doc, Rhino.Commands.RunMode mode)
  {
    SDK sdk = SDK.FlamingoSDK;
    if (null == sdk)
      return Rhino.Commands.Result.Failure;
    string matName = string.Empty;
    Guid matGuid = Guid.Empty;
    if (!sdk.ModalMaterialBrowser(Rhino.RhinoApp.MainWindow(), out matName, out matGuid))
      return Rhino.Commands.Result.Cancel;
    ObjRef objRef = null;
    Result result = RhinoGet.GetOneObject("Select object", false, ObjectType.None, out objRef);
    if (result == Result.Success && null != objRef)
    {
      Point3D origin;
      if (sdk.GetMappingOrigin(objRef.ObjectId, out origin))
        RhinoApp.WriteLine("Object mapping origin : \"" + origin + "\"");
      else
        RhinoApp.WriteLine("Object not assigned a Flamingo mapping");
    }
    return Result.Success;
  }
}
flamingo/flamingosdk/mappinginformation.txt · Last modified: 2012/04/19 by johnm