9 #ifndef __HOM_Defines_h__
10 #define __HOM_Defines_h__
17 #if UT_ASSERT_LEVEL >= 2
27 #if defined(SWIG) && defined(SWIGPYTHON)
28 #define SWIGPYTHONOUT(x) x
30 #define SWIGPYTHONOUT(x)
36 #include <hboost/any.hpp>
53 #define HOM_MIN_NEGATIVE_DOUBLE -1 * std::numeric_limits<double>::max()
72 typedef PyObject *InterpreterObject;
74 PyObject *HOMincRef(PyObject *
object)
86 typedef PyObject *InterpreterObject;
105 template <
typename T> InterpreterObject
106 HOMconvertValueForInterpreter(
const T &
value,
int own);
109 template <> InterpreterObject
110 HOMconvertValueForInterpreter<int>(
const int&
value,
int )
111 {
return SWIG_From_int(value); }
113 template <> InterpreterObject
114 HOMconvertValueForInterpreter<float>(
const float&
value,
int )
115 {
return SWIG_From_float(value); }
117 template <> InterpreterObject
118 HOMconvertValueForInterpreter<double>(
const double&
value,
int )
119 {
return SWIG_From_double(value); }
121 template <> InterpreterObject
122 HOMconvertValueForInterpreter<std::string>(
123 const std::string&
value,
int )
124 {
return SWIG_From_std_string(value); }
128 template <> InterpreterObject
129 HOMconvertValueForInterpreter<HOM_Node*>(
HOM_Node *
const &node,
int own)
136 bool isnetwork =
false;
138 if (!node || (!opnode && !apexnode && !uninode))
139 return SWIG_NewPointerObj(node, SWIGTYPE_p_HOM_Node, own);
142 return SWIG_NewPointerObj(apexnode, SWIGTYPE_p_HOM_ApexNode, own);
145 return SWIG_NewPointerObj(uninode, SWIGTYPE_p_HOM_UniNode, own);
155 return SWIG_NewPointerObj(
156 (
void*)dynamic_cast<HOM_ObjNode* const>(node),
157 SWIGTYPE_p_HOM_ObjNode, own);
164 return SWIG_NewPointerObj(
165 (
void*)dynamic_cast<HOM_SopNode* const>(node),
166 SWIGTYPE_p_HOM_SopNode, own);
173 return SWIG_NewPointerObj(
174 (
void*)dynamic_cast<HOM_ChopNode* const>(node),
175 SWIGTYPE_p_HOM_ChopNode, own);
182 return SWIG_NewPointerObj(
183 (
void*)dynamic_cast<HOM_Cop2Node* const>(node),
184 SWIGTYPE_p_HOM_Cop2Node, own);
191 return SWIG_NewPointerObj(
192 (
void*)dynamic_cast<HOM_CopNode* const>(node),
193 SWIGTYPE_p_HOM_CopNode, own);
200 return SWIG_NewPointerObj(
201 (
void*)dynamic_cast<HOM_DopNode* const>(node),
202 SWIGTYPE_p_HOM_DopNode, own);
209 return SWIG_NewPointerObj(
210 (
void*)dynamic_cast<HOM_ShopNode* const>(node),
211 SWIGTYPE_p_HOM_ShopNode, own);
218 return SWIG_NewPointerObj(
219 (
void*)dynamic_cast<HOM_VopNetNode* const>(node),
220 SWIGTYPE_p_HOM_VopNetNode, own);
227 return SWIG_NewPointerObj(
228 (
void*)dynamic_cast<HOM_RopNode* const>(node),
229 SWIGTYPE_p_HOM_RopNode, own);
236 return SWIG_NewPointerObj(
237 (
void*)dynamic_cast<HOM_VopNode* const>(node),
238 SWIGTYPE_p_HOM_VopNode, own);
245 return SWIG_NewPointerObj(
246 (
void*)dynamic_cast<HOM_TopNode* const>(node),
247 SWIGTYPE_p_HOM_TopNode, own);
257 nodetype = node->type();
258 isnetwork = (nodetype && nodetype->
isManager(
true));
261 return SWIG_NewPointerObj(
262 (
void*)dynamic_cast<HOM_LopNetwork* const>(node),
263 SWIGTYPE_p_HOM_LopNetwork, own);
265 return SWIG_NewPointerObj(
266 (
void*)dynamic_cast<HOM_LopNode* const>(node),
267 SWIGTYPE_p_HOM_LopNode, own);
277 if (
HOM().lopNodeTypeCategory() == node->childTypeCategory())
278 return SWIG_NewPointerObj(
280 SWIGTYPE_p_HOM_LopNetwork, own);
286 return SWIG_NewPointerObj(opnode, SWIGTYPE_p_HOM_OpNode, own);
289 template <> InterpreterObject
290 HOMconvertValueForInterpreter<HOM_NodeType*>(
300 if (!nodetype || (!opnodetype && !uninodetype && !apexnodetype))
301 return SWIG_NewPointerObj(nodetype, SWIGTYPE_p_HOM_NodeType, own);
304 return SWIG_NewPointerObj(apexnodetype,
305 SWIGTYPE_p_HOM_ApexNodeType, own);
308 return SWIG_NewPointerObj(uninodetype,
309 SWIGTYPE_p_HOM_UniNodeType, own);
311 if( !nodetype->isManager() )
321 return SWIG_NewPointerObj(
322 (
void*)dynamic_cast<const HOM_SopNodeType* const>(nodetype),
323 SWIGTYPE_p_HOM_SopNodeType, own);
330 return SWIG_NewPointerObj(
331 (
void*)dynamic_cast<const HOM_ShopNodeType* const>(nodetype),
332 SWIGTYPE_p_HOM_ShopNodeType, own);
339 return SWIG_NewPointerObj(
340 (
void*)dynamic_cast<const HOM_VopNodeType* const>(nodetype),
341 SWIGTYPE_p_HOM_VopNodeType, own);
347 return SWIG_NewPointerObj(nodetype, SWIGTYPE_p_HOM_OpNodeType, own);
350 template <> InterpreterObject
351 HOMconvertValueForInterpreter<HOM_NodeTypeCategory*>(
361 if (!nodetypecategory || (!opnodetypecategory && !uninodetypecategory &&
362 !apexnodetypecategory))
363 return SWIG_NewPointerObj(nodetypecategory,
364 SWIGTYPE_p_HOM_NodeTypeCategory, own);
366 if (apexnodetypecategory)
367 return SWIG_NewPointerObj(apexnodetypecategory,
368 SWIGTYPE_p_HOM_ApexNodeTypeCategory, own);
370 if (uninodetypecategory)
371 return SWIG_NewPointerObj(uninodetypecategory,
372 SWIGTYPE_p_HOM_UniNodeTypeCategory, own);
374 return SWIG_NewPointerObj(nodetypecategory,
375 SWIGTYPE_p_HOM_OpNodeTypeCategory, own);
378 template <> InterpreterObject
379 HOMconvertValueForInterpreter<HOM_NodeTypeCategory&>(
389 if (!opnodetypecategory && !uninodetypecategory && !apexnodetypecategory)
390 return SWIG_NewPointerObj(&nodetypecategory,
391 SWIGTYPE_p_HOM_NodeTypeCategory, own);
393 if (apexnodetypecategory)
394 return SWIG_NewPointerObj(&apexnodetypecategory,
395 SWIGTYPE_p_HOM_ApexNodeTypeCategory, own);
397 if (uninodetypecategory)
398 return SWIG_NewPointerObj(&uninodetypecategory,
399 SWIGTYPE_p_HOM_UniNodeTypeCategory, own);
401 return SWIG_NewPointerObj(&nodetypecategory,
402 SWIGTYPE_p_HOM_OpNodeTypeCategory, own);
418 result = HOMconvertValueForInterpreter(val, 0);
434 template <> InterpreterObject
435 HOMconvertValueForInterpreter<HOM_NetworkBox*>(
441 return SWIG_NewPointerObj(obj, SWIGTYPE_p_HOM_NetworkBox, own);
443 return SWIG_NewPointerObj(obj, SWIGTYPE_p_HOM_OpNetworkBox, own);
446 template <> InterpreterObject
447 HOMconvertValueForInterpreter<HOM_NetworkDot*>(
453 return SWIG_NewPointerObj(obj, SWIGTYPE_p_HOM_NetworkDot, own);
455 return SWIG_NewPointerObj(obj, SWIGTYPE_p_HOM_OpNetworkDot, own);
458 template <> InterpreterObject
459 HOMconvertValueForInterpreter<HOM_NodeConnection*>(
466 if (!obj || (!opobj && !uniobj && !apexobj))
467 return SWIG_NewPointerObj(obj, SWIGTYPE_p_HOM_NodeConnection, own);
470 return SWIG_NewPointerObj(apexobj, SWIGTYPE_p_HOM_ApexNodeConnection, own);
473 return SWIG_NewPointerObj(uniobj, SWIGTYPE_p_HOM_UniNodeConnection, own);
475 return SWIG_NewPointerObj(obj, SWIGTYPE_p_HOM_OpNodeConnection, own);
478 template <> InterpreterObject
479 HOMconvertValueForInterpreter<HOM_StickyNote*>(
486 if (!obj || (!opobj && !uniobj && !apexobj))
487 return SWIG_NewPointerObj(obj, SWIGTYPE_p_HOM_StickyNote, own);
490 return SWIG_NewPointerObj(apexobj, SWIGTYPE_p_HOM_ApexStickyNote, own);
493 return SWIG_NewPointerObj(uniobj, SWIGTYPE_p_HOM_UniStickyNote, own);
495 return SWIG_NewPointerObj(obj, SWIGTYPE_p_HOM_OpStickyNote, own);
498 template <> InterpreterObject
499 HOMconvertValueForInterpreter<HOM_SubnetIndirectInput*>(
505 return SWIG_NewPointerObj(obj, SWIGTYPE_p_HOM_SubnetIndirectInput, own);
507 return SWIG_NewPointerObj(obj, SWIGTYPE_p_HOM_OpSubnetIndirectInput, own);
510 template <> InterpreterObject
511 HOMconvertValueForInterpreter<HOM_BaseKeyframe*>(
515 return SWIG_NewPointerObj(keyframe, SWIGTYPE_p_HOM_BaseKeyframe, own);
523 return SWIG_NewPointerObj(
524 (
void*)dynamic_cast<const HOM_Keyframe* const>(keyframe),
525 SWIGTYPE_p_HOM_Keyframe, own);
533 return SWIG_NewPointerObj(
534 (
void*)dynamic_cast<const HOM_StringKeyframe* const>(keyframe),
535 SWIGTYPE_p_HOM_StringKeyframe, own);
538 return SWIG_NewPointerObj(keyframe, SWIGTYPE_p_HOM_BaseKeyframe, own);
541 template <> InterpreterObject
542 HOMconvertValueForInterpreter<HOM_PackedPrim*>(
HOM_PackedPrim *
const &prim,
int own)
545 return SWIG_NewPointerObj(prim, SWIGTYPE_p_HOM_PackedPrim, own);
552 switch (prim->type().id())
554 case HOM_primType::Agent_Id:
555 return SWIG_NewPointerObj(
556 (
void *)dynamic_cast<HOM_Agent *const>(prim),
557 SWIGTYPE_p_HOM_Agent, own);
559 case HOM_primType::PackedFragment_Id:
560 return SWIG_NewPointerObj(
561 (
void *)dynamic_cast<HOM_PackedFragment *const>(prim),
562 SWIGTYPE_p_HOM_PackedFragment, own);
564 case HOM_primType::PackedGeometry_Id:
565 return SWIG_NewPointerObj(
566 (
void *)dynamic_cast<HOM_PackedGeometry *const>(prim),
567 SWIGTYPE_p_HOM_PackedGeometry, own);
571 return SWIG_NewPointerObj((
void *)prim, SWIGTYPE_p_HOM_PackedPrim, own);
574 template <> InterpreterObject
575 HOMconvertValueForInterpreter<HOM_Prim*>(
HOM_Prim *
const &prim,
int own)
578 return SWIG_NewPointerObj(prim, SWIGTYPE_p_HOM_Prim, own);
586 return HOMconvertValueForInterpreter(packed, own);
588 switch (prim->type().id())
590 case HOM_primType::Polygon_Id:
591 return SWIG_NewPointerObj(
592 (
void*)dynamic_cast<const HOM_Polygon* const>(prim),
593 SWIGTYPE_p_HOM_Polygon, own);
595 case HOM_primType::NURBSCurve_Id:
596 case HOM_primType::BezierCurve_Id:
597 return SWIG_NewPointerObj(
598 (
void*)dynamic_cast<const HOM_Face* const>(prim),
599 SWIGTYPE_p_HOM_Face, own);
601 case HOM_primType::Mesh_Id:
602 case HOM_primType::NURBSSurface_Id:
603 case HOM_primType::BezierSurface_Id:
604 return SWIG_NewPointerObj(
605 (
void*)dynamic_cast<const HOM_Surface* const>(prim),
606 SWIGTYPE_p_HOM_Surface, own);
608 case HOM_primType::Circle_Id:
609 case HOM_primType::Sphere_Id:
610 case HOM_primType::Tube_Id:
611 case HOM_primType::Plane_Id:
612 return SWIG_NewPointerObj(
613 (
void*)dynamic_cast<const HOM_Quadric* const>(prim),
614 SWIGTYPE_p_HOM_Quadric, own);
616 case HOM_primType::Volume_Id:
617 return SWIG_NewPointerObj(
618 (
void*)dynamic_cast<const HOM_Volume* const>(prim),
619 SWIGTYPE_p_HOM_Volume, own);
621 case HOM_primType::VDB_Id:
622 return SWIG_NewPointerObj(
623 (
void*)dynamic_cast<const HOM_VDB* const>(prim),
624 SWIGTYPE_p_HOM_VDB, own);
626 case HOM_primType::ChannelPrim_Id:
627 return SWIG_NewPointerObj(
628 (
void*)dynamic_cast<const HOM_ChannelPrim* const>(prim),
629 SWIGTYPE_p_HOM_ChannelPrim, own);
631 case HOM_primType::CameraPrim_Id:
632 return SWIG_NewPointerObj(
633 (
void*)dynamic_cast<const HOM_CameraPrim* const>(prim),
634 SWIGTYPE_p_HOM_CameraPrim, own);
639 return SWIG_NewPointerObj(prim, SWIGTYPE_p_HOM_Prim, own);
642 template <> InterpreterObject
643 HOMconvertValueForInterpreter<HOM_ParmTemplate*>(
647 return SWIG_NewPointerObj(
648 parm_template, SWIGTYPE_p_HOM_ParmTemplate, own);
653 switch (parm_template->type().id())
655 case HOM_parmTemplateType::Int_Id:
656 return SWIG_NewPointerObj(
657 (
void*)dynamic_cast<const HOM_IntParmTemplate* const>(
659 SWIGTYPE_p_HOM_IntParmTemplate, own);
661 case HOM_parmTemplateType::Float_Id:
662 return SWIG_NewPointerObj(
663 (
void*)dynamic_cast<const HOM_FloatParmTemplate* const>(
665 SWIGTYPE_p_HOM_FloatParmTemplate, own);
667 case HOM_parmTemplateType::String_Id:
668 return SWIG_NewPointerObj(
669 (
void*)dynamic_cast<const HOM_StringParmTemplate* const>(
671 SWIGTYPE_p_HOM_StringParmTemplate, own);
673 case HOM_parmTemplateType::Data_Id:
674 return SWIG_NewPointerObj(
675 (
void*)dynamic_cast<const HOM_DataParmTemplate* const>(
677 SWIGTYPE_p_HOM_DataParmTemplate, own);
679 case HOM_parmTemplateType::Toggle_Id:
680 return SWIG_NewPointerObj(
681 (
void*)dynamic_cast<const HOM_ToggleParmTemplate* const>(
683 SWIGTYPE_p_HOM_ToggleParmTemplate, own);
685 case HOM_parmTemplateType::Menu_Id:
686 return SWIG_NewPointerObj(
687 (
void*)dynamic_cast<const HOM_MenuParmTemplate* const>(
689 SWIGTYPE_p_HOM_MenuParmTemplate, own);
691 case HOM_parmTemplateType::Button_Id:
692 return SWIG_NewPointerObj(
693 (
void*)dynamic_cast<const HOM_ButtonParmTemplate* const>(
695 SWIGTYPE_p_HOM_ButtonParmTemplate, own);
697 case HOM_parmTemplateType::Label_Id:
698 return SWIG_NewPointerObj(
699 (
void*)dynamic_cast<const HOM_LabelParmTemplate* const>(
701 SWIGTYPE_p_HOM_LabelParmTemplate, own);
703 case HOM_parmTemplateType::Separator_Id:
704 return SWIG_NewPointerObj(
705 (
void*)dynamic_cast<const HOM_SeparatorParmTemplate* const>(
707 SWIGTYPE_p_HOM_SeparatorParmTemplate, own);
709 case HOM_parmTemplateType::FolderSet_Id:
710 return SWIG_NewPointerObj(
711 (
void*)dynamic_cast<const HOM_FolderSetParmTemplate* const>(
713 SWIGTYPE_p_HOM_FolderSetParmTemplate, own);
715 case HOM_parmTemplateType::Folder_Id:
716 return SWIG_NewPointerObj(
717 (
void*)dynamic_cast<const HOM_FolderParmTemplate* const>(
719 SWIGTYPE_p_HOM_FolderParmTemplate, own);
721 case HOM_parmTemplateType::Ramp_Id:
722 return SWIG_NewPointerObj(
723 (
void*)dynamic_cast<const HOM_RampParmTemplate* const>(
725 SWIGTYPE_p_HOM_RampParmTemplate, own);
728 UT_ASSERT(!
"Unknown parm template type");
729 return SWIG_NewPointerObj(parm_template, SWIGTYPE_p_HOM_ParmTemplate, own);
732 template <> InterpreterObject
733 HOMconvertValueForInterpreter<HOM_PaneTab*>(
737 return SWIG_NewPointerObj(pane_tab, SWIGTYPE_p_HOM_PaneTab, own);
743 switch (pane_tab->type().id())
745 case HOM_paneTabType::ContextViewer_Id:
746 return SWIG_NewPointerObj(
747 (
void*)dynamic_cast<const HOM_ContextViewer* const>(pane_tab),
748 SWIGTYPE_p_HOM_ContextViewer, own);
750 case HOM_paneTabType::SceneViewer_Id:
751 return SWIG_NewPointerObj(
752 (
void*)dynamic_cast<const HOM_SceneViewer* const>(pane_tab),
753 SWIGTYPE_p_HOM_SceneViewer, own);
755 case HOM_paneTabType::CompositorViewer_Id:
756 return SWIG_NewPointerObj(
757 (
void*)dynamic_cast<const HOM_CompositorViewer* const>(pane_tab),
758 SWIGTYPE_p_HOM_CompositorViewer, own);
760 case HOM_paneTabType::NetworkEditor_Id:
761 case HOM_paneTabType::ApexEditor_Id:
762 case HOM_paneTabType::UsdShadeEditor_Id:
763 case HOM_paneTabType::GenericGraphEditor_Id:
764 return SWIG_NewPointerObj(
765 (
void*)dynamic_cast<const HOM_NetworkEditor* const>(pane_tab),
766 SWIGTYPE_p_HOM_NetworkEditor, own);
768 case HOM_paneTabType::HelpBrowser_Id:
769 return SWIG_NewPointerObj(
770 (
void*)dynamic_cast<const HOM_HelpBrowser* const>(pane_tab),
771 SWIGTYPE_p_HOM_HelpBrowser, own);
773 case HOM_paneTabType::PythonPanel_Id:
774 return SWIG_NewPointerObj(
775 (
void*)dynamic_cast<const HOM_PythonPanel* const>(pane_tab),
776 SWIGTYPE_p_HOM_PythonPanel, own);
778 case HOM_paneTabType::IPRViewer_Id:
779 return SWIG_NewPointerObj(
780 (
void*)dynamic_cast<const HOM_IPRViewer* const>(pane_tab),
781 SWIGTYPE_p_HOM_IPRViewer, own);
783 case HOM_paneTabType::AssetBrowser_Id:
784 return SWIG_NewPointerObj(
785 (
void*)dynamic_cast<const HOM_AssetBrowser* const>(pane_tab),
786 SWIGTYPE_p_HOM_AssetBrowser, own);
788 case HOM_paneTabType::PerformanceMonitor_Id:
789 return SWIG_NewPointerObj(
790 (
void*)dynamic_cast<const HOM_PerformanceMonitor* const>(pane_tab),
791 SWIGTYPE_p_HOM_PerformanceMonitor, own);
793 case HOM_paneTabType::ChannelEditor_Id:
794 return SWIG_NewPointerObj(
795 (
void*)dynamic_cast<const HOM_ChannelEditorPane* const>(pane_tab),
796 SWIGTYPE_p_HOM_ChannelEditorPane, own);
798 case HOM_paneTabType::DataTree_Id:
799 return SWIG_NewPointerObj(
800 (
void*)dynamic_cast<const HOM_DataTree* const>(pane_tab),
801 SWIGTYPE_p_HOM_DataTree, own);
803 case HOM_paneTabType::SceneGraphTree_Id:
804 return SWIG_NewPointerObj(
805 (
void*)dynamic_cast<const HOM_SceneGraphTree* const>(pane_tab),
806 SWIGTYPE_p_HOM_SceneGraphTree, own);
808 case HOM_paneTabType::Parm_Id:
809 return SWIG_NewPointerObj(
810 (
void*)dynamic_cast<const HOM_ParameterEditor* const>(pane_tab),
811 SWIGTYPE_p_HOM_ParameterEditor, own);
813 case HOM_paneTabType::DetailsView_Id:
814 return SWIG_NewPointerObj(
815 (
void*)dynamic_cast<const HOM_GeometrySpreadsheet * const>(pane_tab),
816 SWIGTYPE_p_HOM_GeometrySpreadsheet, own);
818 case HOM_paneTabType::RenderGallery_Id:
819 return SWIG_NewPointerObj(
820 (
void*)dynamic_cast<const HOM_RenderGallery* const>(pane_tab),
821 SWIGTYPE_p_HOM_RenderGallery, own);
823 case HOM_paneTabType::ChannelViewer_Id:
824 case HOM_paneTabType::OutputViewer_Id:
825 case HOM_paneTabType::ShaderViewer_Id:
826 case HOM_paneTabType::TreeView_Id:
827 return SWIG_NewPointerObj(
828 (
void*)dynamic_cast<const HOM_PathBasedPaneTab* const>(pane_tab),
829 SWIGTYPE_p_HOM_PathBasedPaneTab, own);
831 case HOM_paneTabType::ChannelList_Id:
832 return SWIG_NewPointerObj(
833 (
void*)dynamic_cast<const HOM_ChannelListPaneTab* const>(pane_tab),
834 SWIGTYPE_p_HOM_ChannelListPaneTab, own);
836 case HOM_paneTabType::Textport_Id:
837 case HOM_paneTabType::PythonShell_Id:
838 case HOM_paneTabType::HandleList_Id:
839 case HOM_paneTabType::BundleList_Id:
840 case HOM_paneTabType::TakeList_Id:
841 case HOM_paneTabType::ParmSpreadsheet_Id:
842 case HOM_paneTabType::LightLinker_Id:
843 case HOM_paneTabType::MaterialPalette_Id:
844 case HOM_paneTabType::EngineSessionSync_Id:
845 return SWIG_NewPointerObj(pane_tab, SWIGTYPE_p_HOM_PaneTab, own);
849 return SWIG_NewPointerObj(pane_tab, SWIGTYPE_p_HOM_PaneTab, own);
852 template <> InterpreterObject
853 HOMconvertValueForInterpreter<HOM_OpVerb*>(
857 return SWIG_NewPointerObj(opverb, SWIGTYPE_p_HOM_OpVerb, own);
866 return SWIG_NewPointerObj(
867 (
void*)dynamic_cast<HOM_CopVerb* const>(opverb),
868 SWIGTYPE_p_HOM_CopVerb, own);
874 return SWIG_NewPointerObj(
875 (
void*)dynamic_cast<HOM_SopVerb* const>(opverb),
876 SWIGTYPE_p_HOM_SopVerb, own);
882 return SWIG_NewPointerObj(opverb,
883 SWIGTYPE_p_HOM_OpVerb, own);
887 template <> InterpreterObject
888 HOMconvertValueForInterpreter<HOM_CopVerb*>(
891 return SWIG_NewPointerObj(verb, SWIGTYPE_p_HOM_CopVerb, own);
894 template <> InterpreterObject
895 HOMconvertValueForInterpreter<HOM_SopVerb*>(
898 return SWIG_NewPointerObj(verb, SWIGTYPE_p_HOM_SopVerb, own);
901 template <> InterpreterObject
902 HOMconvertValueForInterpreter<HOM_Geometry*>(
905 return SWIG_NewPointerObj(geo, SWIGTYPE_p_HOM_Geometry, own);
908 template <> InterpreterObject
909 HOMconvertValueForInterpreter<HOM_ImageLayer*>(
912 return SWIG_NewPointerObj(layer, SWIGTYPE_p_HOM_ImageLayer, own);
915 template <> InterpreterObject
916 HOMconvertValueForInterpreter<HOM_NanoVDB*>(
919 return SWIG_NewPointerObj(layer, SWIGTYPE_p_HOM_NanoVDB, own);
922 template <> InterpreterObject
923 HOMconvertValueForInterpreter<HOM_DetachedAttrib*>(
926 return SWIG_NewPointerObj(layer, SWIGTYPE_p_HOM_DetachedAttrib, own);
929 template <> InterpreterObject
930 HOMconvertValueForInterpreter<HOM_NetworkItem*>(
938 switch (item->networkItemType().id())
940 case HOM_networkItemType::Node_Id:
941 return HOMconvertValueForInterpreter(
942 dynamic_cast<HOM_Node* const>(item), own);
944 case HOM_networkItemType::NetworkBox_Id:
945 return HOMconvertValueForInterpreter(
946 dynamic_cast<HOM_NetworkBox* const>(item), own);
948 case HOM_networkItemType::StickyNote_Id:
949 return HOMconvertValueForInterpreter(
950 dynamic_cast<HOM_StickyNote* const>(item), own);
952 case HOM_networkItemType::SubnetIndirectInput_Id:
953 return HOMconvertValueForInterpreter(
954 dynamic_cast<HOM_SubnetIndirectInput* const>(item), own);
956 case HOM_networkItemType::Connection_Id:
957 return HOMconvertValueForInterpreter(
958 dynamic_cast<HOM_NodeConnection* const>(item), own);
960 case HOM_networkItemType::NetworkDot_Id:
961 return HOMconvertValueForInterpreter(
962 dynamic_cast<HOM_NetworkDot* const>(item), own);
969 return SWIG_NewPointerObj(item, SWIGTYPE_p_HOM_NetworkItem, own);
972 template <> InterpreterObject
973 HOMconvertValueForInterpreter<HOM_NetworkMovableItem*>(
977 return SWIG_NewPointerObj(item, SWIGTYPE_p_HOM_NetworkMovableItem, own);
979 return HOMconvertValueForInterpreter<HOM_NetworkItem *>(item, own);
982 template <> InterpreterObject
983 HOMconvertValueForInterpreter<
984 std::vector<HOM_ElemPtr<HOM_NodeConnection> >*>(
985 std::vector<HOM_ElemPtr<HOM_NodeConnection> > *
const &list,
988 return swig::from(*list);
991 template <> InterpreterObject
992 HOMconvertValueForInterpreter<HOM_DopData*>(
HOM_DopData *
const &
data,
int own)
997 return SWIG_NewPointerObj(
998 (
void *)dop_object, SWIGTYPE_p_HOM_DopObject, own);
1002 if (dop_relationship)
1003 return SWIG_NewPointerObj(
1004 (
void *)dop_relationship, SWIGTYPE_p_HOM_DopRelationship, own);
1006 return SWIG_NewPointerObj(data, SWIGTYPE_p_HOM_DopData, own);
1009 template <> InterpreterObject
1010 HOMconvertValueForInterpreter<HOM_RadialItem*>(
1015 switch (item->type().id())
1017 case HOM_radialItemType::Script_Id:
1018 return SWIG_NewPointerObj(
1019 (
void*)dynamic_cast<const HOM_RadialScriptItem* const>(item),
1020 SWIGTYPE_p_HOM_RadialScriptItem, own);
1022 case HOM_radialItemType::Submenu_Id:
1023 return SWIG_NewPointerObj(
1024 (
void*)dynamic_cast<const HOM_RadialSubmenu* const>(item),
1025 SWIGTYPE_p_HOM_RadialSubmenu, own);
1032 return SWIG_NewPointerObj(item, SWIGTYPE_p_HOM_RadialItem, own);
1035 template <> InterpreterObject
1036 HOMconvertValueForInterpreter<HOM_EnumValue*>(
1044 return SWIG_NewPointerObj((
void*)item, SWIGTYPE_p_HOM_EnumValue, 0);
1049 #define HOM_PROVIDE_SWIG_LOOKUP(type) \
1050 template <> InterpreterObject HOMconvertValueForInterpreter<type*>( \
1051 type* const& value, int own) \
1053 return SWIG_NewPointerObj(SWIG_as_voidptr(value), \
1054 SWIGTYPE_p_ ## type, own); \
1151 #define HOM_CONVERT_AND_CATCH \
1154 $result = HOMconvertValueForInterpreter($1, $owner); \
1158 (void)hom::raise_swig_exception(); \
1159 $result = nullptr; \
1164 HOM_CONVERT_AND_CATCH
1168 HOM_CONVERT_AND_CATCH
1172 HOM_CONVERT_AND_CATCH
1176 HOM_CONVERT_AND_CATCH
1180 HOM_CONVERT_AND_CATCH
1184 HOM_CONVERT_AND_CATCH
1188 HOM_CONVERT_AND_CATCH
1192 HOM_CONVERT_AND_CATCH
1196 HOM_CONVERT_AND_CATCH
1200 HOM_CONVERT_AND_CATCH
1204 HOM_CONVERT_AND_CATCH
1208 HOM_CONVERT_AND_CATCH
1212 HOM_CONVERT_AND_CATCH
1216 HOM_CONVERT_AND_CATCH
1220 HOM_CONVERT_AND_CATCH
1224 HOM_CONVERT_AND_CATCH
1228 HOM_CONVERT_AND_CATCH
1232 HOM_CONVERT_AND_CATCH
1236 HOM_CONVERT_AND_CATCH
1240 HOM_CONVERT_AND_CATCH
1244 HOM_CONVERT_AND_CATCH
1251 %typemap(
throws) HOM_TypeError %{
1252 SWIG_exception_fail(SWIG_TypeError, $1.instanceMessage().
c_str());
1255 %typemap(
throws) HOM_ValueError %{
1256 SWIG_exception_fail(SWIG_ValueError, $1.instanceMessage().
c_str());
1261 PyErr_SetObject(PyExc_SystemExit, SWIG_From_int($1.code()));
1271 %typemap(
in) hboost::
any {
1276 HOMinterpreterObjectToBoostAny($input, $1);
1280 (
void)hom::raise_swig_exception();
1292 HOMinterpreterObjectToUTOptionAny($input, $1);
1296 (
void)hom::raise_swig_exception();
1301 %typemap(out) hboost::any {
1304 $result = HOMboostAnyToInterpreterObject($1);
1308 (
void)hom::raise_swig_exception();
1315 $result = HOMDDSourceAnyToInterpreterObject($1);
1319 (
void)hom::raise_swig_exception();
1329 if ($input != Py_None)
1333 if (SWIG_IsOK(SWIG_AsVal_double($input, &res)))
1341 (
void)hom::raise_swig_exception();
1349 if ($input != Py_None)
1353 if (SWIG_IsOK(SWIG_AsVal_int($input, &res)))
1361 (
void)hom::raise_swig_exception();
1365 %typemap(out) HOM_OptionalInt {
1369 $result = SWIG_From_int($1.
value());
1371 $result = SWIG_Py_Void();
1375 (
void)hom::raise_swig_exception();
1380 %fragment(
"HOMIntIntervalFromPython",
"header") %{
1384 const bool is_list = PyList_Check(input);
1385 if ((!is_list && !PyTuple_Check(input)) || PySequence_Size(input) != 2)
1387 int min_val, max_val;
1390 ok = SWIG_IsOK(SWIG_AsVal_int(PyList_GET_ITEM(input, 0), &min_val))
1391 && SWIG_IsOK(SWIG_AsVal_int(PyList_GET_ITEM(input, 1), &max_val));
1393 ok = SWIG_IsOK(SWIG_AsVal_int(PyTuple_GET_ITEM(input, 0), &min_val))
1394 && SWIG_IsOK(SWIG_AsVal_int(PyTuple_GET_ITEM(input, 1), &max_val));
1408 if (!HOMIntIntervalFromPython($input, interval))
1410 SWIG_exception(SWIG_TypeError,
1411 "expected a list or tuple of 2 ints");
1418 (
void)hom::raise_swig_exception();
1426 if ($input != Py_None)
1429 if (!HOMIntIntervalFromPython($input, interval))
1431 SWIG_exception(SWIG_TypeError,
1432 "expected a list or tuple of 2 ints, or None");
1440 (
void)hom::raise_swig_exception();
1449 $result = PyTuple_New(2);
1450 PyTuple_SetItem($result, 0, SWIG_From_int($1->
min));
1451 PyTuple_SetItem($result, 1, SWIG_From_int($1->
max));
1454 $result = SWIG_Py_Void();
1458 (
void)hom::raise_swig_exception();
1466 $result = HOMincRef((InterpreterObject)$1.opaqueObject());
1476 struct traits_from<PY_OpaqueObject>
1478 static PyObject *from(
const PY_OpaqueObject &
val)
1480 return HOMincRef((InterpreterObject)val.
opaqueObject());
1486 template <
typename T>
1489 swig_type_info *descriptor)
1492 int res = SWIG_ConvertPtr(input, &t_ptr, descriptor, 0);;
1493 if (SWIG_IsOK(res) && t_ptr)
1496 result =
reinterpret_cast<T*
>(t_ptr);
1507 template <
typename Seq,
typename T =
typename Seq::value_type>
1509 HOMinterpreterObjectConvertSeq(InterpreterObject input,
hboost::any &result)
1511 swig::SwigPySequence_Cont<T> swigpyseq(input);
1512 if (!swigpyseq.check())
1515 auto n = swigpyseq.size();
1518 for (
auto i=0;i<
n; ++i)
1519 seq[i] = swigpyseq[i];
1521 result = std::move(seq);
1526 template <
typename T>
1528 HOMinterpreterObjectConvertVal(InterpreterObject input,
hboost::any &result)
1533 swig_type_info *descriptor = swig::type_info<T>();
1538 int res = SWIG_ConvertPtr(input, (
void**)&t_ptr, descriptor, 0);
1540 if (!SWIG_IsOK(res) || !t_ptr)
1548 result = std::move(*t_ptr);
1549 if (SWIG_IsNewObj(res))
1555 template <
typename T>
1557 HOMinterpreterObjectConvertAsPtr(InterpreterObject input,
hboost::any &result)
1561 int res = swig::asptr(input, (T**)NULL);
1562 if (!SWIG_IsOK(res))
1567 res = swig::asptr(input, &t_ptr);
1568 if (!SWIG_IsOK(res) || !t_ptr)
1576 result = std::move(*t_ptr);
1577 if (SWIG_IsNewObj(res))
1583 #define CONVERT_PTR(X) \
1584 if (HOMinterpreterObjectConvertPtr<X>(\
1585 swig_input,result,SWIGTYPE_p_##X))\
1588 #define CONVERT_VAL(X) \
1589 if (HOMinterpreterObjectConvertVal<X>(swig_input,result))\
1592 #define CONVERT_ASPTR(X) \
1593 if (HOMinterpreterObjectConvertAsPtr<X>(input,result))\
1596 #define CONVERT_SEQ(X) \
1597 if (HOMinterpreterObjectConvertSeq<X>(input,result))\
1601 typedef std::map<std::string,hboost::any> std__map_std__string_hboost__any_;
1602 typedef std::vector<std::map<std::string,hboost::any>> std__vector_std__map_std__string_hboost__any__;
1623 HOMinterpreterObjectToBoostAny(InterpreterObject input,
hboost::any &result)
1626 if (input == Py_None)
1628 result = (
void *)NULL;
1634 if (input == Py_True)
1640 if (input == Py_False)
1648 if (SWIG_IsOK(SWIG_AsVal_int(input, &int_result)))
1650 result = int_result;
1654 double double_result;
1655 if (SWIG_IsOK(SWIG_AsVal_double(input, &double_result)))
1657 result = double_result;
1662 char*
buf = 0 ;
size_t size = 0;
int alloc = SWIG_OLDOBJ;
1663 if (SWIG_IsOK((SWIG_AsCharPtrAndSize(input, &buf, &size, &alloc))))
1667 result = std::string(buf, size - 1);
1668 if (alloc == SWIG_NEWOBJ)
1673 result = std::string();
1682 const int res = SWIG_AsPtr_HOM_BinaryString(input, &val);
1687 result = std::move(*val);
1688 if (SWIG_IsNewObj(res))
1700 bool is_seq = PyList_Check(input) || PyTuple_Check(input);
1701 bool is_dict = PyDict_Check(input);
1704 CONVERT_SEQ(std::vector<int>);
1705 CONVERT_SEQ(std::vector<double>);
1706 CONVERT_SEQ(std::vector<std::string>);
1707 CONVERT_SEQ(std::vector<HOM_Quaternion>);
1708 CONVERT_SEQ(std::vector<HOM_Vector2>);
1709 CONVERT_SEQ(std::vector<HOM_Vector3>);
1710 CONVERT_SEQ(std::vector<HOM_Vector4>);
1711 CONVERT_SEQ(std::vector<HOM_Matrix2>);
1712 CONVERT_SEQ(std::vector<HOM_Matrix3>);
1713 CONVERT_SEQ(std::vector<HOM_Matrix4>);
1714 CONVERT_SEQ(std__vector_std__map_std__string_hboost__any__);
1718 CONVERT_ASPTR(std__map_std__string_hboost__any_);
1725 InterpreterObject swig_input =
1726 (InterpreterObject)SWIG_Python_GetSwigThis(input);
1728 CONVERT_VAL(std::string);
1747 CONVERT_VAL(std::vector<int>);
1748 CONVERT_VAL(std::vector<double>);
1749 CONVERT_VAL(std::vector<std::string>);
1750 CONVERT_VAL(std::vector<HOM_Quaternion>);
1751 CONVERT_VAL(std::vector<HOM_Vector2>);
1752 CONVERT_VAL(std::vector<HOM_Vector3>);
1753 CONVERT_VAL(std::vector<HOM_Vector4>);
1754 CONVERT_VAL(std::vector<HOM_Matrix2>);
1755 CONVERT_VAL(std::vector<HOM_Matrix3>);
1756 CONVERT_VAL(std::vector<HOM_Matrix4>);
1757 CONVERT_VAL(std__map_std__string_hboost__any_);
1758 CONVERT_VAL(std__vector_std__map_std__string_hboost__any__);
1771 HOMinterpreterObjectToUTOptionAny(InterpreterObject input,
1772 HOM_UTOptionAny &result)
1774 return HOMinterpreterObjectToBoostAny(input, result);
1782 struct traits_asptr<hboost::any>
1784 static int asptr(InterpreterObject obj,
hboost::any **val)
1788 HOMinterpreterObjectToBoostAny(obj, *p);
1798 static InterpreterObject
1799 HOMboostAnyToInterpreterObject(
const hboost::any &result)
1802 return SWIG_Py_Void();
1804 namespace ti = hboost::typeindex;
1806 if (result.type() == ti::type_id<int>())
1807 return SWIG_From_int(hboost::any_cast<int>(result));
1809 if (result.type() == ti::type_id<long>())
1810 return SWIG_From_long(hboost::any_cast<long>(result));
1812 if (result.type() == ti::type_id<int64>())
1813 return swig::from(hboost::any_cast<int64>(result));
1815 if (result.type() == ti::type_id<float>())
1816 return SWIG_From_float(hboost::any_cast<float>(result));
1818 if (result.type() == ti::type_id<double>())
1819 return SWIG_From_double(hboost::any_cast<double>(result));
1821 if (result.type() == ti::type_id<bool>())
1822 return SWIG_From_bool(hboost::any_cast<bool>(result));
1824 if (result.type() == ti::type_id<std::string>())
1825 return SWIG_From_std_string(hboost::any_cast<std::string>(result));
1827 if (result.type() == ti::type_id<HOM_BinaryString>())
1828 return SWIG_From_HOM_BinaryString(hboost::any_cast<HOM_BinaryString>(result));
1830 if (result.type() == ti::type_id<std::map<std::string, hboost::any>>())
1832 hboost::any_cast<std::map<std::string, hboost::any> >(result));
1834 if (result.type() == ti::type_id<std::vector<int>>())
1835 return swig::from(hboost::any_cast<std::vector<int> >(result));
1837 if (result.type() == ti::type_id<std::vector<int64>>())
1838 return swig::from(hboost::any_cast<std::vector<int64> >(result));
1840 if (result.type() == ti::type_id<std::vector<float>>())
1841 return swig::from(hboost::any_cast<std::vector<float> >(result));
1843 if (result.type() == ti::type_id<std::vector<std::string>>())
1844 return swig::from(hboost::any_cast<std::vector<std::string> >(result));
1846 if (result.type() == ti::type_id<std::vector<double>>())
1847 return swig::from(hboost::any_cast<std::vector<double> >(result));
1849 if (result.type() == ti::type_id<std::vector<std::vector<float> >>())
1851 hboost::any_cast<std::vector<std::vector<float> > >(result));
1853 if (result.type() == ti::type_id<std::vector<std::vector<double> >>())
1855 hboost::any_cast<std::vector<std::vector<double> > >(result));
1857 if (result.type() == ti::type_id<std::vector<std::map<std::string, hboost::any> >>())
1859 hboost::any_cast<std::vector<std::map<std::string, hboost::any> > >(result));
1863 if (result.type() == ti::type_id<HOM_Vector2 *>())
1864 return HOMconvertValueForInterpreter(
1865 hboost::any_cast<HOM_Vector2 *>(result), SWIG_POINTER_OWN);
1867 if (result.type() == ti::type_id<HOM_Vector3 *>())
1868 return HOMconvertValueForInterpreter(
1869 hboost::any_cast<HOM_Vector3 *>(result), SWIG_POINTER_OWN);
1871 if (result.type() == ti::type_id<HOM_Vector4 *>())
1872 return HOMconvertValueForInterpreter(
1873 hboost::any_cast<HOM_Vector4 *>(result), SWIG_POINTER_OWN);
1875 if (result.type() == ti::type_id<HOM_Matrix2 *>())
1876 return HOMconvertValueForInterpreter(
1877 hboost::any_cast<HOM_Matrix2 *>(result), SWIG_POINTER_OWN);
1879 if (result.type() == ti::type_id<HOM_Matrix3 *>())
1880 return HOMconvertValueForInterpreter(
1881 hboost::any_cast<HOM_Matrix3 *>(result), SWIG_POINTER_OWN);
1883 if (result.type() == ti::type_id<HOM_Matrix4 *>())
1884 return HOMconvertValueForInterpreter(
1885 hboost::any_cast<HOM_Matrix4 *>(result), SWIG_POINTER_OWN);
1887 if (result.type() == ti::type_id<HOM_Quaternion *>())
1888 return HOMconvertValueForInterpreter(
1889 hboost::any_cast<HOM_Quaternion *>(result), SWIG_POINTER_OWN);
1891 if (result.type() == ti::type_id<HOM_NodeType *>())
1892 return HOMconvertValueForInterpreter(
1893 hboost::any_cast<HOM_NodeType *>(result), SWIG_POINTER_OWN);
1895 if (result.type() == ti::type_id<HOM_Ramp *>())
1896 return HOMconvertValueForInterpreter(
1897 hboost::any_cast<HOM_Ramp *>(result), SWIG_POINTER_OWN);
1899 if (result.type() == ti::type_id<HOM_Color *>())
1900 return HOMconvertValueForInterpreter(
1901 hboost::any_cast<HOM_Color *>(result), SWIG_POINTER_OWN);
1903 if (result.type() == ti::type_id<HOM_Parm *>())
1904 return HOMconvertValueForInterpreter(
1905 hboost::any_cast<HOM_Parm *>(result), SWIG_POINTER_OWN);
1907 if (result.type() == ti::type_id<HOM_EnumValue *>())
1908 return HOMconvertValueForInterpreter(
1909 hboost::any_cast<HOM_EnumValue *>(result), 0);
1911 if (result.type() == ti::type_id<HOM_Geometry *>())
1912 return HOMconvertValueForInterpreter(
1913 hboost::any_cast<HOM_Geometry *>(result), SWIG_POINTER_OWN);
1915 if (result.type() == ti::type_id<HOM_ImageLayer *>())
1916 return HOMconvertValueForInterpreter(
1917 hboost::any_cast<HOM_ImageLayer *>(result), SWIG_POINTER_OWN);
1919 if (result.type() == ti::type_id<HOM_NanoVDB *>())
1920 return HOMconvertValueForInterpreter(
1921 hboost::any_cast<HOM_NanoVDB *>(result), SWIG_POINTER_OWN);
1923 if (result.type() == ti::type_id<HOM_DetachedAttrib *>())
1924 return HOMconvertValueForInterpreter(
1925 hboost::any_cast<HOM_DetachedAttrib *>(result), SWIG_POINTER_OWN);
1927 if (result.type() == ti::type_id<std::vector<HOM_ElemPtr<HOM_Vector2> >>())
1931 if (result.type() == ti::type_id<std::vector<HOM_ElemPtr<HOM_Vector3> >>())
1935 if (result.type() == ti::type_id<std::vector<HOM_ElemPtr<HOM_Vector4> >>())
1939 if (result.type() == ti::type_id<std::vector<HOM_ElemPtr<HOM_Matrix2> >>())
1943 if (result.type() == ti::type_id<std::vector<HOM_ElemPtr<HOM_Matrix3> >>())
1947 if (result.type() == ti::type_id<std::vector<HOM_ElemPtr<HOM_Matrix4> >>())
1951 if (result.type() == ti::type_id<std::vector<HOM_ElemPtr<HOM_Quaternion> >>())
1955 #if UT_ASSERT_LEVEL > 0
1956 std::cout <<
"Unknown data type: "
1960 return SWIG_Py_Void();
1965 static InterpreterObject
1966 HOMDDSourceAnyToInterpreterObject(
const HOM_DDSourceAny &result)
1968 namespace ti = hboost::typeindex;
1970 if (result.type() == ti::type_id<HOM_Node *>())
1972 return HOMconvertValueForInterpreter(
1973 hboost::any_cast<HOM_Node *>(result), SWIG_POINTER_OWN);
1975 if (result.type() == ti::type_id<HOM_Parm *>())
1977 return HOMconvertValueForInterpreter(
1978 hboost::any_cast<HOM_Parm *>(result), SWIG_POINTER_OWN);
1980 if (result.type() == ti::type_id<HOM_GalleryEntry *>())
1982 return HOMconvertValueForInterpreter(
1983 hboost::any_cast<HOM_GalleryEntry *>(result), SWIG_POINTER_OWN);
1986 return HOMboostAnyToInterpreterObject(result);
1993 struct traits_from<hboost::any>
1996 {
return HOMboostAnyToInterpreterObject(val); }
2000 static InterpreterObject
2001 HOMoptionsToInterpreterObject(
const UT_Options &options);
2003 static InterpreterObject
2004 HOMoptionEntryToInterpreterObject(
const UT_OptionEntry &option_entry)
2010 InterpreterObject result = NULL;
2012 switch (option_entry.
getType())
2019 return SWIG_From_bool(
2023 return SWIG_From_double(
2030 return SWIG_From_std_string(
2035 return HOMconvertValueForInterpreter(
2041 return HOMconvertValueForInterpreter(
2047 return HOMconvertValueForInterpreter(
2053 return HOMconvertValueForInterpreter(
2059 return HOMconvertValueForInterpreter(
2065 return HOMconvertValueForInterpreter(
2071 return HOMconvertValueForInterpreter(
2077 return HOMconvertValueForInterpreter(
2083 return HOMconvertValueForInterpreter(
2090 std::vector<int64> int_vector;
2092 static_cast<const UT_OptionInt64Array &>(option_entry)
2094 return swig::from(int_vector);
2099 std::vector<double> double_vector;
2101 static_cast<const UT_OptionFpreal64Array &>(option_entry)
2103 return swig::from(double_vector);
2110 std::vector<std::string> str_vector;
2111 UTarrayToStdVectorOfStrings(
2112 static_cast<const UT_OptionStringArray &>(option_entry)
2114 return swig::from(str_vector);
2121 return HOMoptionsToInterpreterObject(*opt.
options());
2127 InterpreterObject result = PyList_New(0);
2129 for (
auto && opt : optlist)
2131 PyList_Append(result, HOMoptionsToInterpreterObject(*opt.
options()));
2142 return result ? result : SWIG_Py_Void();
2146 static InterpreterObject
2147 HOMoptionsToInterpreterObject(
const UT_Options &options)
2153 InterpreterObject result = PyDict_New();
2159 InterpreterObject value=HOMoptionEntryToInterpreterObject(*it.entry());
2160 PyDict_SetItemString(result, it.name(),
value);
2167 static InterpreterObject
2168 HOMoptionsListToInterpreterObject(
const std::vector<UT_Options>& options)
2170 auto pysize = options.size();
2176 InterpreterObject list = PyList_New(pysize);
2177 for (
int i = 0; i < pysize; ++i)
2179 auto value = HOMoptionsToInterpreterObject(options[i]);
2181 PyList_SET_ITEM(list, i, value);
2192 template<
typename T>
2193 PyObject* HOMgetattr(T* hom_object,
const char *
name)
2201 PyObject *dict = context
2204 ? PyDict_GetItemString(dict, name) : NULL;
2207 if (!attribute && dict)
2210 attribute = name ? PyDict_GetItemString(dict, name) : NULL;
2216 return HOMincRef(attribute);
2222 error_message.
sprintf(
"'module' object has no attribute '%s'", name);
2223 PyErr_SetString(PyExc_AttributeError, error_message.
buffer());
2237 HOM_PyBuffer(InterpreterObject py_object)
2239 #if PY_VERSION_HEX >= 0x03000000
2240 myBytesObj =
nullptr;
2245 PyObject *obj = py_object;
2247 #if PY_VERSION_HEX >= 0x03000000
2249 if (PyUnicode_Check(obj))
2252 PyUnicode_AsEncodedString(obj,
"utf-8",
"surrogateescape");
2258 #if PY_VERSION_HEX >= 0x02060000
2259 myUseNewAPI =
false;
2260 if (PyObject_CheckBuffer(obj))
2262 if (PyObject_GetBuffer(obj, &myPyBuffer, PyBUF_SIMPLE) < 0)
2264 #if PY_VERSION_HEX >= 0x03000000
2265 cleanBytesObject_();
2267 throw HOM_TypeError(
"failed to get readable buffer");
2271 myData = myPyBuffer.buf;
2272 myLength = myPyBuffer.len;
2277 #if PY_VERSION_HEX >= 0x03000000
2278 cleanBytesObject_();
2279 throw HOM_TypeError(
"failed to get readable buffer");
2283 if (!PyObject_CheckReadBuffer(obj))
2284 throw HOM_TypeError(
"expected a readable buffer");
2286 if (PyObject_AsReadBuffer(obj, &myData, &myLength) < 0)
2287 throw HOM_TypeError(
"failed to get readable buffer");
2293 #if PY_VERSION_HEX >= 0x03000000
2294 cleanBytesObject_();
2297 #if PY_VERSION_HEX >= 0x02060000
2299 PyBuffer_Release(&myPyBuffer);
2303 #if PY_VERSION_HEX >= 0x03000000
2304 void cleanBytesObject_()
2309 Py_DECREF(myBytesObj);
2310 myBytesObj =
nullptr;
2314 #if PY_VERSION_HEX >= 0x03000000
2315 PyObject *myBytesObj;
2318 #if PY_VERSION_HEX >= 0x02060000
2320 Py_buffer myPyBuffer;
2323 Py_ssize_t myLength;
2333 template <
typename T,
typename A>
2335 HOMattribValue(T &geo_element,
A &hom_attrib,
2341 InterpreterObject result = NULL;
2342 const bool scalar = (attr_size == 1 && !is_array_type);
2343 switch (array_data_type)
2345 case HOM_attribData::Int_Id:
2347 result = swig::from(
2348 hboost::any_cast<int64>(geo_element.intAttribValue(hom_attrib)));
2350 result = swig::from(
2351 hboost::any_cast<std::vector<int64> >(
2352 geo_element.intListAttribValue(hom_attrib)));
2355 case HOM_attribData::Float_Id:
2357 result = SWIG_From_double(geo_element.floatAttribValue(hom_attrib));
2359 result = swig::from(geo_element.floatListAttribValue(hom_attrib));
2362 case HOM_attribData::String_Id:
2364 result = SWIG_From_std_string(
2365 geo_element.stringAttribValue(hom_attrib));
2367 result = swig::from(geo_element.stringListAttribValue(hom_attrib));
2370 case HOM_attribData::Dict_Id:
2372 result = swig::from(geo_element.dictAttribValue(hom_attrib));
2374 result = swig::from(geo_element.dictListAttribValue(hom_attrib));
2381 template <
typename T>
2383 HOMattribValue(T &geo_element,
HOM_Attrib &hom_attrib)
2385 return HOMattribValue(geo_element,
2392 template <
typename T>
2394 HOMattribValue(T &geo_element,
const char *name)
2397 bool is_array_type =
false;
2398 int attr_data_type = 0;
2399 geo_element._attribInfo(name,attr_data_type,attr_size,is_array_type);
2400 return HOMattribValue(geo_element,name, attr_size, is_array_type,
2409 static InterpreterObject
2414 case HOM_parmData::Int_Id:
2415 return swig::from(hboost::any_cast<int64>(parm.
evalAsInt()));
2416 case HOM_parmData::Float_Id:
2418 case HOM_parmData::String_Id:
2420 case HOM_parmData::Ramp_Id:
2421 return SWIG_NewPointerObj(
2422 (
void*)parm.
evalAsRamp(), SWIGTYPE_p_HOM_Ramp, SWIG_POINTER_OWN);
2423 case HOM_parmData::Data_Id:
2427 return SWIG_NewPointerObj(
2428 (
void*)parm.
evalAsGeometry(), SWIGTYPE_p_HOM_Geometry, SWIG_POINTER_OWN);
2432 return SWIG_Py_Void();
2435 static InterpreterObject
2436 HOMevalParmAtFrame(
HOM_Parm &parm,
double frame)
2440 case HOM_parmData::Int_Id:
2442 case HOM_parmData::Float_Id:
2444 case HOM_parmData::String_Id:
2446 case HOM_parmData::Ramp_Id:
2447 return SWIG_NewPointerObj(
2449 SWIGTYPE_p_HOM_Ramp, SWIG_POINTER_OWN);
2450 case HOM_parmData::Data_Id:
2454 return SWIG_NewPointerObj(
2456 SWIGTYPE_p_HOM_Geometry, SWIG_POINTER_OWN);
2460 return SWIG_Py_Void();
2463 static InterpreterObject
2468 case HOM_parmData::Int_Id:
2470 case HOM_parmData::Float_Id:
2472 case HOM_parmData::String_Id:
2474 case HOM_parmData::Ramp_Id:
2476 case HOM_parmData::Data_Id:
2478 == HOM_dataParmType::KeyValueDictionary_Id)
2487 return SWIG_Py_Void();
2490 static InterpreterObject
2491 HOMevalParmTupleAtFrame(
HOM_ParmTuple &parm_tuple,
double frame)
2495 case HOM_parmData::Int_Id:
2497 case HOM_parmData::Float_Id:
2499 case HOM_parmData::String_Id:
2501 case HOM_parmData::Ramp_Id:
2503 case HOM_parmData::Data_Id:
2505 == HOM_dataParmType::KeyValueDictionary_Id)
2514 return SWIG_Py_Void();
2517 static InterpreterObject
2522 case HOM_parmData::Int_Id:
2523 return swig::from(hboost::any_cast<int64>(visualizer.
evalParmAsInt(parm_name)));
2524 case HOM_parmData::Float_Id:
2526 case HOM_parmData::String_Id:
2528 case HOM_parmData::Ramp_Id:
2529 return SWIG_NewPointerObj(
2530 (
void*)visualizer.
evalParmAsRamp(parm_name), SWIGTYPE_p_HOM_Ramp,
2535 return SWIG_Py_Void();
UT_Matrix4T< double > UT_DMatrix4
virtual std::vector< HOM_ElemPtr< HOM_Geometry > > evalAsGeometries()=0
GLenum GLuint GLenum GLsizei const GLchar * buf
UT_Matrix3T< double > UT_DMatrix3
virtual std::vector< int > evalAsIntsAtFrame(double frame)=0
virtual std::string evalParmAsString(const char *parm_name)=0
virtual bool isArrayType()=0
virtual std::vector< HOM_ElemPtr< HOM_Ramp > > evalAsRampsAtFrame(double frame)=0
hboost::any HOM_UTOptionAny
void * opaqueObject() const noexcept
GLsizei const GLfloat * value
virtual int parmDataTypeEnumId()=0
virtual double evalAsFloat()=0
virtual int opTypeIdAsInt()=0
virtual std::vector< int > evalAsInts()=0
SYS_FORCE_INLINE const char * buffer() const
ImageBuf OIIO_API min(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
**But if you need a result
UT_Optional< HOM_IntInterval > HOM_OptionalIntInterval
constexpr auto in(type t, int set) -> bool
__hostdev__ float getValue(uint32_t i) const
std::optional< T > UT_Optional
virtual HOM_Ramp * evalParmAsRamp(const char *parm_name)=0
GLenum GLuint GLint GLint layer
virtual HOM_Ramp * evalAsRampAtFrame(double frame)=0
virtual std::vector< std::string > evalAsStrings()=0
UT_API std::string UTunmangleClassNameFromTypeIdName(const std::string &name)
virtual double evalAsFloatAtFrame(double frame)=0
virtual std::vector< std::map< std::string, std::string > > evalAsJSONMaps()=0
virtual int dataParmTypeEnumId()=0
bool any(const vbool4 &v)
virtual std::map< std::string, std::string > evalAsJSONMapAtFrame(double frame)=0
virtual HOM_Geometry * evalAsGeometryAtFrame(double frame)=0
virtual UT_OptionType getType() const
UT_Matrix2T< double > UT_DMatrix2
virtual std::vector< std::map< std::string, std::string > > evalAsJSONMapsAtFrame(double frame)=0
virtual std::map< std::string, std::string > evalAsJSONMap()=0
virtual int64 evalAsInt()=0
UT_Optional< int > HOM_OptionalInt
GLuint const GLchar * name
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t packed(VULKAN_HPP_NAMESPACE::Format format)
virtual int parmDataTypeEnumId()=0
virtual std::string evalAsStringAtFrame(double frame)=0
virtual std::vector< HOM_ElemPtr< HOM_Geometry > > evalAsGeometriesAtFrame(double frame)=0
virtual std::vector< double > evalAsFloatsAtFrame(double frame)=0
virtual HOM_Ramp * evalAsRamp()=0
int sprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
UT_IntervalT< int > HOM_IntInterval
virtual int dataParmTypeEnumId()=0
hboost::any HOM_DDSourceAny
virtual std::vector< double > evalAsFloats()=0
A map of string to various well defined value types.
virtual int opTypeIdAsInt()=0
virtual double evalParmAsFloat(const char *parm_name)=0
virtual int parmDataTypeEnumId(const char *parm_name)=0
SYS_FORCE_INLINE const UT_Options * options() const
virtual bool isManager(bool include_management_types=true)=0
ImageBuf OIIO_API max(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
OIIO_API bool attribute(string_view name, TypeDesc type, const void *val)
virtual HOM_EnumValue & dataType()=0
OIIO_UTIL_API const char * c_str(string_view str)
UT_Optional< double > HOM_OptionalDouble
Adaptors between UT and std classes.
virtual std::vector< HOM_ElemPtr< HOM_Ramp > > evalAsRamps()=0
virtual int evalParmAsInt(const char *parm_name)=0
HOM_API HOM_Module & HOM()
virtual std::vector< std::string > evalAsStringsAtFrame(double frame)=0
virtual std::string evalAsString()=0
virtual int64 evalAsIntAtFrame(double frame)=0
virtual HOM_Geometry * evalAsGeometry()=0