From 37e5ba873c72c4aa174bde1c408954c926d33008 Mon Sep 17 00:00:00 2001 From: Jan Orend <56254096+3dJan@users.noreply.github.com> Date: Wed, 10 Apr 2024 15:47:51 +0200 Subject: [PATCH] [implicit] Adding mod (glsl) node --- Autogenerated/Bindings/C/lib3mf.h | 4 + Autogenerated/Bindings/C/lib3mf_types.h | 8 +- .../Bindings/CDynamic/lib3mf_dynamic.h | 4 + .../Bindings/CDynamic/lib3mf_types.h | 8 +- Autogenerated/Bindings/CSharp/Lib3MF.cs | 12 ++- Autogenerated/Bindings/Cpp/lib3mf_abi.hpp | 4 + .../Bindings/Cpp/lib3mf_implicit.hpp | 28 ++++++ Autogenerated/Bindings/Cpp/lib3mf_types.hpp | 8 +- .../Bindings/CppDynamic/lib3mf_dynamic.h | 4 + .../Bindings/CppDynamic/lib3mf_dynamic.hpp | 28 ++++++ .../Bindings/CppDynamic/lib3mf_types.hpp | 8 +- Autogenerated/Bindings/Go/lib3mf.go | 14 +++ Autogenerated/Bindings/Go/lib3mf_dynamic.h | 4 + Autogenerated/Bindings/Go/lib3mf_types.h | 8 +- .../Bindings/NodeJS/lib3mf_dynamic.h | 4 + .../Bindings/NodeJS/lib3mf_nodeaddon.cc | 1 + .../Bindings/NodeJS/lib3mf_nodewrapper.cc | 57 ++++++++++++ .../Bindings/NodeJS/lib3mf_nodewrapper.h | 17 ++++ Autogenerated/Bindings/NodeJS/lib3mf_types.h | 8 +- Autogenerated/Bindings/Pascal/Unit_Lib3MF.pas | 44 +++++++++- Autogenerated/Bindings/Python/Lib3MF.py | 11 +++ Autogenerated/Source/lib3mf_abi.hpp | 4 + Autogenerated/Source/lib3mf_interfaces.hpp | 21 +++++ .../Source/lib3mf_interfacewrapper.cpp | 4 + Autogenerated/Source/lib3mf_types.hpp | 9 +- AutomaticComponentToolkit/lib3mf.xml | 11 ++- Include/API/lib3mf_modnode.hpp | 87 +++++++++++++++++++ Source/API/lib3mf_model.cpp | 2 +- Source/API/lib3mf_modnode.cpp | 42 +++++++++ .../Model/Classes/NMR_ImplicitNodeTypes.cpp | 1 + 30 files changed, 443 insertions(+), 22 deletions(-) create mode 100644 Include/API/lib3mf_modnode.hpp create mode 100644 Source/API/lib3mf_modnode.cpp diff --git a/Autogenerated/Bindings/C/lib3mf.h b/Autogenerated/Bindings/C/lib3mf.h index 9c197ed1e..26848d950 100644 --- a/Autogenerated/Bindings/C/lib3mf.h +++ b/Autogenerated/Bindings/C/lib3mf.h @@ -3292,6 +3292,10 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_twoinputnode_getinputb(Lib3MF_TwoInputNode p Class definition for FmodNode **************************************************************************************************************************/ +/************************************************************************************************************************* + Class definition for ModNode +**************************************************************************************************************************/ + /************************************************************************************************************************* Class definition for PowNode **************************************************************************************************************************/ diff --git a/Autogenerated/Bindings/C/lib3mf_types.h b/Autogenerated/Bindings/C/lib3mf_types.h index 4e858bf19..497ede263 100644 --- a/Autogenerated/Bindings/C/lib3mf_types.h +++ b/Autogenerated/Bindings/C/lib3mf_types.h @@ -130,6 +130,7 @@ typedef void * Lib3MF_pvoid; #define LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER 140 /** A progress identifier is unknown */ #define LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT 141 /** An element buffer exceeds its spec limit */ #define LIB3MF_ERROR_INVALIDRESOURCE 142 /** A resource is invalid */ +#define LIB3MF_ERROR_INVALIDLEVELSET 143 /** A level set is invalid */ #define LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE 2000 /** This object type is not valid for beamlattices */ #define LIB3MF_ERROR_INVALIDKEYSTORE 3000 /** The keystore object is invalid */ #define LIB3MF_ERROR_INVALIDKEYSTORECONSUMER 3001 /** The consumer keystore object is invalid */ @@ -185,6 +186,7 @@ inline const char * LIB3MF_GETERRORSTRING (Lib3MFResult nErrorCode) { case LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: return "A progress identifier is unknown"; case LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: return "An element buffer exceeds its spec limit"; case LIB3MF_ERROR_INVALIDRESOURCE: return "A resource is invalid"; + case LIB3MF_ERROR_INVALIDLEVELSET: return "A level set is invalid"; case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "This object type is not valid for beamlattices"; case LIB3MF_ERROR_INVALIDKEYSTORE: return "The keystore object is invalid"; case LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: return "The consumer keystore object is invalid"; @@ -288,6 +290,7 @@ typedef Lib3MFHandle Lib3MF_MatVecMultiplicationNode; typedef Lib3MFHandle Lib3MF_MinNode; typedef Lib3MFHandle Lib3MF_MaxNode; typedef Lib3MFHandle Lib3MF_FmodNode; +typedef Lib3MFHandle Lib3MF_ModNode; typedef Lib3MFHandle Lib3MF_PowNode; typedef Lib3MFHandle Lib3MF_SelectNode; typedef Lib3MFHandle Lib3MF_ClampNode; @@ -474,7 +477,7 @@ typedef enum eLib3MFImplicitNodeType { eImplicitNodeTypeMin = 25, /** Calculates the minimum tow values */ eImplicitNodeTypeMax = 26, /** Calculates the maximum of two values */ eImplicitNodeTypeAbs = 27, /** Calcul the absolute value */ - eImplicitNodeTypeFmod = 28, /** Calculates the modulo of two values */ + eImplicitNodeTypeFmod = 28, /** Computes the remainder of the divison of the inputs (same behavior as C fmod) */ eImplicitNodeTypePow = 29, /** Calculates the power A^B */ eImplicitNodeTypeSqrt = 30, /** Calculates the square root */ eImplicitNodeTypeExp = 31, /** Exponential function */ @@ -496,7 +499,8 @@ typedef enum eLib3MFImplicitNodeType { eImplicitNodeTypeLength = 47, /** Calculates the length of a vector */ eImplicitNodeTypeResource = 48, /** Selects a resource (function, mesh etc.) */ eImplicitNodeTypeVectorFromScalar = 49, /** Creates a vector from one scalar values */ - eImplicitNodeTypeUnsignedMesh = 50 /** Calculates the unsigned distance to a mesh */ + eImplicitNodeTypeUnsignedMesh = 50, /** Calculates the unsigned distance to a mesh */ + eImplicitNodeTypeMod = 51 /** Calculates the modulo of two values (same behaviour as glsl mod) */ } eLib3MFImplicitNodeType; /** diff --git a/Autogenerated/Bindings/CDynamic/lib3mf_dynamic.h b/Autogenerated/Bindings/CDynamic/lib3mf_dynamic.h index 0f941c3a2..9baaad589 100644 --- a/Autogenerated/Bindings/CDynamic/lib3mf_dynamic.h +++ b/Autogenerated/Bindings/CDynamic/lib3mf_dynamic.h @@ -3279,6 +3279,10 @@ typedef Lib3MFResult (*PLib3MFTwoInputNode_GetInputBPtr) (Lib3MF_TwoInputNode pT Class definition for FmodNode **************************************************************************************************************************/ +/************************************************************************************************************************* + Class definition for ModNode +**************************************************************************************************************************/ + /************************************************************************************************************************* Class definition for PowNode **************************************************************************************************************************/ diff --git a/Autogenerated/Bindings/CDynamic/lib3mf_types.h b/Autogenerated/Bindings/CDynamic/lib3mf_types.h index 4e858bf19..497ede263 100644 --- a/Autogenerated/Bindings/CDynamic/lib3mf_types.h +++ b/Autogenerated/Bindings/CDynamic/lib3mf_types.h @@ -130,6 +130,7 @@ typedef void * Lib3MF_pvoid; #define LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER 140 /** A progress identifier is unknown */ #define LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT 141 /** An element buffer exceeds its spec limit */ #define LIB3MF_ERROR_INVALIDRESOURCE 142 /** A resource is invalid */ +#define LIB3MF_ERROR_INVALIDLEVELSET 143 /** A level set is invalid */ #define LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE 2000 /** This object type is not valid for beamlattices */ #define LIB3MF_ERROR_INVALIDKEYSTORE 3000 /** The keystore object is invalid */ #define LIB3MF_ERROR_INVALIDKEYSTORECONSUMER 3001 /** The consumer keystore object is invalid */ @@ -185,6 +186,7 @@ inline const char * LIB3MF_GETERRORSTRING (Lib3MFResult nErrorCode) { case LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: return "A progress identifier is unknown"; case LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: return "An element buffer exceeds its spec limit"; case LIB3MF_ERROR_INVALIDRESOURCE: return "A resource is invalid"; + case LIB3MF_ERROR_INVALIDLEVELSET: return "A level set is invalid"; case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "This object type is not valid for beamlattices"; case LIB3MF_ERROR_INVALIDKEYSTORE: return "The keystore object is invalid"; case LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: return "The consumer keystore object is invalid"; @@ -288,6 +290,7 @@ typedef Lib3MFHandle Lib3MF_MatVecMultiplicationNode; typedef Lib3MFHandle Lib3MF_MinNode; typedef Lib3MFHandle Lib3MF_MaxNode; typedef Lib3MFHandle Lib3MF_FmodNode; +typedef Lib3MFHandle Lib3MF_ModNode; typedef Lib3MFHandle Lib3MF_PowNode; typedef Lib3MFHandle Lib3MF_SelectNode; typedef Lib3MFHandle Lib3MF_ClampNode; @@ -474,7 +477,7 @@ typedef enum eLib3MFImplicitNodeType { eImplicitNodeTypeMin = 25, /** Calculates the minimum tow values */ eImplicitNodeTypeMax = 26, /** Calculates the maximum of two values */ eImplicitNodeTypeAbs = 27, /** Calcul the absolute value */ - eImplicitNodeTypeFmod = 28, /** Calculates the modulo of two values */ + eImplicitNodeTypeFmod = 28, /** Computes the remainder of the divison of the inputs (same behavior as C fmod) */ eImplicitNodeTypePow = 29, /** Calculates the power A^B */ eImplicitNodeTypeSqrt = 30, /** Calculates the square root */ eImplicitNodeTypeExp = 31, /** Exponential function */ @@ -496,7 +499,8 @@ typedef enum eLib3MFImplicitNodeType { eImplicitNodeTypeLength = 47, /** Calculates the length of a vector */ eImplicitNodeTypeResource = 48, /** Selects a resource (function, mesh etc.) */ eImplicitNodeTypeVectorFromScalar = 49, /** Creates a vector from one scalar values */ - eImplicitNodeTypeUnsignedMesh = 50 /** Calculates the unsigned distance to a mesh */ + eImplicitNodeTypeUnsignedMesh = 50, /** Calculates the unsigned distance to a mesh */ + eImplicitNodeTypeMod = 51 /** Calculates the modulo of two values (same behaviour as glsl mod) */ } eLib3MFImplicitNodeType; /** diff --git a/Autogenerated/Bindings/CSharp/Lib3MF.cs b/Autogenerated/Bindings/CSharp/Lib3MF.cs index 01cb527a1..f5161a8c1 100644 --- a/Autogenerated/Bindings/CSharp/Lib3MF.cs +++ b/Autogenerated/Bindings/CSharp/Lib3MF.cs @@ -209,7 +209,8 @@ public enum eImplicitNodeType { Length = 47, Resource = 48, VectorFromScalar = 49, - UnsignedMesh = 50 + UnsignedMesh = 50, + Mod = 51 }; public enum eImplicitPortType { @@ -2676,6 +2677,7 @@ public static T PolymorphicFactory(IntPtr Handle) where T : class case 0x846AFDE9A091E997: Object = new CMinNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::MinNode" case 0x073F910381BF250D: Object = new CMaxNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::MaxNode" case 0x1EF703D298223F2A: Object = new CFmodNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::FmodNode" + case 0xEA57335849379F22: Object = new CModNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::ModNode" case 0x7700AA17CA1AC0F8: Object = new CPowNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::PowNode" case 0x1127ED71E05A9BD4: Object = new CSelectNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::SelectNode" case 0x77AF68C971B1485F: Object = new CClampNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::ClampNode" @@ -6051,6 +6053,14 @@ public CFmodNode (IntPtr NewHandle) : base (NewHandle) } + public class CModNode : CTwoInputNode + { + public CModNode (IntPtr NewHandle) : base (NewHandle) + { + } + + } + public class CPowNode : CTwoInputNode { public CPowNode (IntPtr NewHandle) : base (NewHandle) diff --git a/Autogenerated/Bindings/Cpp/lib3mf_abi.hpp b/Autogenerated/Bindings/Cpp/lib3mf_abi.hpp index 1601c7c92..c27922c02 100644 --- a/Autogenerated/Bindings/Cpp/lib3mf_abi.hpp +++ b/Autogenerated/Bindings/Cpp/lib3mf_abi.hpp @@ -3292,6 +3292,10 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_twoinputnode_getinputb(Lib3MF_TwoInputNode p Class definition for FmodNode **************************************************************************************************************************/ +/************************************************************************************************************************* + Class definition for ModNode +**************************************************************************************************************************/ + /************************************************************************************************************************* Class definition for PowNode **************************************************************************************************************************/ diff --git a/Autogenerated/Bindings/Cpp/lib3mf_implicit.hpp b/Autogenerated/Bindings/Cpp/lib3mf_implicit.hpp index 2dbfda4df..33ee5e364 100644 --- a/Autogenerated/Bindings/Cpp/lib3mf_implicit.hpp +++ b/Autogenerated/Bindings/Cpp/lib3mf_implicit.hpp @@ -141,6 +141,7 @@ class CMatVecMultiplicationNode; class CMinNode; class CMaxNode; class CFmodNode; +class CModNode; class CPowNode; class CSelectNode; class CClampNode; @@ -260,6 +261,7 @@ typedef CMatVecMultiplicationNode CLib3MFMatVecMultiplicationNode; typedef CMinNode CLib3MFMinNode; typedef CMaxNode CLib3MFMaxNode; typedef CFmodNode CLib3MFFmodNode; +typedef CModNode CLib3MFModNode; typedef CPowNode CLib3MFPowNode; typedef CSelectNode CLib3MFSelectNode; typedef CClampNode CLib3MFClampNode; @@ -379,6 +381,7 @@ typedef std::shared_ptr PMatVecMultiplicationNode; typedef std::shared_ptr PMinNode; typedef std::shared_ptr PMaxNode; typedef std::shared_ptr PFmodNode; +typedef std::shared_ptr PModNode; typedef std::shared_ptr PPowNode; typedef std::shared_ptr PSelectNode; typedef std::shared_ptr PClampNode; @@ -498,6 +501,7 @@ typedef PMatVecMultiplicationNode PLib3MFMatVecMultiplicationNode; typedef PMinNode PLib3MFMinNode; typedef PMaxNode PLib3MFMaxNode; typedef PFmodNode PLib3MFFmodNode; +typedef PModNode PLib3MFModNode; typedef PPowNode PLib3MFPowNode; typedef PSelectNode PLib3MFSelectNode; typedef PClampNode PLib3MFClampNode; @@ -643,6 +647,7 @@ class ELib3MFException : public std::exception { case LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: return "UNKOWNPROGRESSIDENTIFIER"; case LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: return "ELEMENTCOUNTEXCEEDSLIMIT"; case LIB3MF_ERROR_INVALIDRESOURCE: return "INVALIDRESOURCE"; + case LIB3MF_ERROR_INVALIDLEVELSET: return "INVALIDLEVELSET"; case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "BEAMLATTICE_INVALID_OBJECTTYPE"; case LIB3MF_ERROR_INVALIDKEYSTORE: return "INVALIDKEYSTORE"; case LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: return "INVALIDKEYSTORECONSUMER"; @@ -698,6 +703,7 @@ class ELib3MFException : public std::exception { case LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: return "A progress identifier is unknown"; case LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: return "An element buffer exceeds its spec limit"; case LIB3MF_ERROR_INVALIDRESOURCE: return "A resource is invalid"; + case LIB3MF_ERROR_INVALIDLEVELSET: return "A level set is invalid"; case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "This object type is not valid for beamlattices"; case LIB3MF_ERROR_INVALIDKEYSTORE: return "The keystore object is invalid"; case LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: return "The consumer keystore object is invalid"; @@ -901,6 +907,7 @@ class CWrapper { friend class CMinNode; friend class CMaxNode; friend class CFmodNode; + friend class CModNode; friend class CPowNode; friend class CSelectNode; friend class CClampNode; @@ -2620,6 +2627,22 @@ class CFmodNode : public CTwoInputNode { }; +/************************************************************************************************************************* + Class CModNode +**************************************************************************************************************************/ +class CModNode : public CTwoInputNode { +public: + + /** + * CModNode::CModNode - Constructor for ModNode class. + */ + CModNode(CWrapper* pWrapper, Lib3MFHandle pHandle) + : CTwoInputNode(pWrapper, pHandle) + { + } + +}; + /************************************************************************************************************************* Class CPowNode **************************************************************************************************************************/ @@ -3481,6 +3504,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle) case 0x846AFDE9A091E997UL: return new CMinNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::MinNode" case 0x073F910381BF250DUL: return new CMaxNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::MaxNode" case 0x1EF703D298223F2AUL: return new CFmodNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::FmodNode" + case 0xEA57335849379F22UL: return new CModNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::ModNode" case 0x7700AA17CA1AC0F8UL: return new CPowNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::PowNode" case 0x1127ED71E05A9BD4UL: return new CSelectNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::SelectNode" case 0x77AF68C971B1485FUL: return new CClampNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::ClampNode" @@ -7806,6 +7830,10 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle) * Method definitions for class CFmodNode */ + /** + * Method definitions for class CModNode + */ + /** * Method definitions for class CPowNode */ diff --git a/Autogenerated/Bindings/Cpp/lib3mf_types.hpp b/Autogenerated/Bindings/Cpp/lib3mf_types.hpp index 8c709a77e..e3ab36dbb 100644 --- a/Autogenerated/Bindings/Cpp/lib3mf_types.hpp +++ b/Autogenerated/Bindings/Cpp/lib3mf_types.hpp @@ -129,6 +129,7 @@ typedef void * Lib3MF_pvoid; #define LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER 140 /** A progress identifier is unknown */ #define LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT 141 /** An element buffer exceeds its spec limit */ #define LIB3MF_ERROR_INVALIDRESOURCE 142 /** A resource is invalid */ +#define LIB3MF_ERROR_INVALIDLEVELSET 143 /** A level set is invalid */ #define LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE 2000 /** This object type is not valid for beamlattices */ #define LIB3MF_ERROR_INVALIDKEYSTORE 3000 /** The keystore object is invalid */ #define LIB3MF_ERROR_INVALIDKEYSTORECONSUMER 3001 /** The consumer keystore object is invalid */ @@ -184,6 +185,7 @@ inline const char * LIB3MF_GETERRORSTRING (Lib3MFResult nErrorCode) { case LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: return "A progress identifier is unknown"; case LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: return "An element buffer exceeds its spec limit"; case LIB3MF_ERROR_INVALIDRESOURCE: return "A resource is invalid"; + case LIB3MF_ERROR_INVALIDLEVELSET: return "A level set is invalid"; case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "This object type is not valid for beamlattices"; case LIB3MF_ERROR_INVALIDKEYSTORE: return "The keystore object is invalid"; case LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: return "The consumer keystore object is invalid"; @@ -287,6 +289,7 @@ typedef Lib3MFHandle Lib3MF_MatVecMultiplicationNode; typedef Lib3MFHandle Lib3MF_MinNode; typedef Lib3MFHandle Lib3MF_MaxNode; typedef Lib3MFHandle Lib3MF_FmodNode; +typedef Lib3MFHandle Lib3MF_ModNode; typedef Lib3MFHandle Lib3MF_PowNode; typedef Lib3MFHandle Lib3MF_SelectNode; typedef Lib3MFHandle Lib3MF_ClampNode; @@ -475,7 +478,7 @@ namespace Lib3MF { Min = 25, /** Calculates the minimum tow values */ Max = 26, /** Calculates the maximum of two values */ Abs = 27, /** Calcul the absolute value */ - Fmod = 28, /** Calculates the modulo of two values */ + Fmod = 28, /** Computes the remainder of the divison of the inputs (same behavior as C fmod) */ Pow = 29, /** Calculates the power A^B */ Sqrt = 30, /** Calculates the square root */ Exp = 31, /** Exponential function */ @@ -497,7 +500,8 @@ namespace Lib3MF { Length = 47, /** Calculates the length of a vector */ Resource = 48, /** Selects a resource (function, mesh etc.) */ VectorFromScalar = 49, /** Creates a vector from one scalar values */ - UnsignedMesh = 50 /** Calculates the unsigned distance to a mesh */ + UnsignedMesh = 50, /** Calculates the unsigned distance to a mesh */ + Mod = 51 /** Calculates the modulo of two values (same behaviour as glsl mod) */ }; /** diff --git a/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.h b/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.h index 865a65006..e3238b113 100644 --- a/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.h +++ b/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.h @@ -3279,6 +3279,10 @@ typedef Lib3MFResult (*PLib3MFTwoInputNode_GetInputBPtr) (Lib3MF_TwoInputNode pT Class definition for FmodNode **************************************************************************************************************************/ +/************************************************************************************************************************* + Class definition for ModNode +**************************************************************************************************************************/ + /************************************************************************************************************************* Class definition for PowNode **************************************************************************************************************************/ diff --git a/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.hpp b/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.hpp index 93c52b511..8d86fb4af 100644 --- a/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.hpp +++ b/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.hpp @@ -141,6 +141,7 @@ class CMatVecMultiplicationNode; class CMinNode; class CMaxNode; class CFmodNode; +class CModNode; class CPowNode; class CSelectNode; class CClampNode; @@ -260,6 +261,7 @@ typedef CMatVecMultiplicationNode CLib3MFMatVecMultiplicationNode; typedef CMinNode CLib3MFMinNode; typedef CMaxNode CLib3MFMaxNode; typedef CFmodNode CLib3MFFmodNode; +typedef CModNode CLib3MFModNode; typedef CPowNode CLib3MFPowNode; typedef CSelectNode CLib3MFSelectNode; typedef CClampNode CLib3MFClampNode; @@ -379,6 +381,7 @@ typedef std::shared_ptr PMatVecMultiplicationNode; typedef std::shared_ptr PMinNode; typedef std::shared_ptr PMaxNode; typedef std::shared_ptr PFmodNode; +typedef std::shared_ptr PModNode; typedef std::shared_ptr PPowNode; typedef std::shared_ptr PSelectNode; typedef std::shared_ptr PClampNode; @@ -498,6 +501,7 @@ typedef PMatVecMultiplicationNode PLib3MFMatVecMultiplicationNode; typedef PMinNode PLib3MFMinNode; typedef PMaxNode PLib3MFMaxNode; typedef PFmodNode PLib3MFFmodNode; +typedef PModNode PLib3MFModNode; typedef PPowNode PLib3MFPowNode; typedef PSelectNode PLib3MFSelectNode; typedef PClampNode PLib3MFClampNode; @@ -643,6 +647,7 @@ class ELib3MFException : public std::exception { case LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: return "UNKOWNPROGRESSIDENTIFIER"; case LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: return "ELEMENTCOUNTEXCEEDSLIMIT"; case LIB3MF_ERROR_INVALIDRESOURCE: return "INVALIDRESOURCE"; + case LIB3MF_ERROR_INVALIDLEVELSET: return "INVALIDLEVELSET"; case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "BEAMLATTICE_INVALID_OBJECTTYPE"; case LIB3MF_ERROR_INVALIDKEYSTORE: return "INVALIDKEYSTORE"; case LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: return "INVALIDKEYSTORECONSUMER"; @@ -698,6 +703,7 @@ class ELib3MFException : public std::exception { case LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: return "A progress identifier is unknown"; case LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: return "An element buffer exceeds its spec limit"; case LIB3MF_ERROR_INVALIDRESOURCE: return "A resource is invalid"; + case LIB3MF_ERROR_INVALIDLEVELSET: return "A level set is invalid"; case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "This object type is not valid for beamlattices"; case LIB3MF_ERROR_INVALIDKEYSTORE: return "The keystore object is invalid"; case LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: return "The consumer keystore object is invalid"; @@ -925,6 +931,7 @@ class CWrapper { friend class CMinNode; friend class CMaxNode; friend class CFmodNode; + friend class CModNode; friend class CPowNode; friend class CSelectNode; friend class CClampNode; @@ -2644,6 +2651,22 @@ class CFmodNode : public CTwoInputNode { }; +/************************************************************************************************************************* + Class CModNode +**************************************************************************************************************************/ +class CModNode : public CTwoInputNode { +public: + + /** + * CModNode::CModNode - Constructor for ModNode class. + */ + CModNode(CWrapper* pWrapper, Lib3MFHandle pHandle) + : CTwoInputNode(pWrapper, pHandle) + { + } + +}; + /************************************************************************************************************************* Class CPowNode **************************************************************************************************************************/ @@ -3505,6 +3528,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle) case 0x846AFDE9A091E997UL: return new CMinNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::MinNode" case 0x073F910381BF250DUL: return new CMaxNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::MaxNode" case 0x1EF703D298223F2AUL: return new CFmodNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::FmodNode" + case 0xEA57335849379F22UL: return new CModNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::ModNode" case 0x7700AA17CA1AC0F8UL: return new CPowNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::PowNode" case 0x1127ED71E05A9BD4UL: return new CSelectNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::SelectNode" case 0x77AF68C971B1485FUL: return new CClampNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::ClampNode" @@ -16320,6 +16344,10 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle) * Method definitions for class CFmodNode */ + /** + * Method definitions for class CModNode + */ + /** * Method definitions for class CPowNode */ diff --git a/Autogenerated/Bindings/CppDynamic/lib3mf_types.hpp b/Autogenerated/Bindings/CppDynamic/lib3mf_types.hpp index 8c709a77e..e3ab36dbb 100644 --- a/Autogenerated/Bindings/CppDynamic/lib3mf_types.hpp +++ b/Autogenerated/Bindings/CppDynamic/lib3mf_types.hpp @@ -129,6 +129,7 @@ typedef void * Lib3MF_pvoid; #define LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER 140 /** A progress identifier is unknown */ #define LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT 141 /** An element buffer exceeds its spec limit */ #define LIB3MF_ERROR_INVALIDRESOURCE 142 /** A resource is invalid */ +#define LIB3MF_ERROR_INVALIDLEVELSET 143 /** A level set is invalid */ #define LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE 2000 /** This object type is not valid for beamlattices */ #define LIB3MF_ERROR_INVALIDKEYSTORE 3000 /** The keystore object is invalid */ #define LIB3MF_ERROR_INVALIDKEYSTORECONSUMER 3001 /** The consumer keystore object is invalid */ @@ -184,6 +185,7 @@ inline const char * LIB3MF_GETERRORSTRING (Lib3MFResult nErrorCode) { case LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: return "A progress identifier is unknown"; case LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: return "An element buffer exceeds its spec limit"; case LIB3MF_ERROR_INVALIDRESOURCE: return "A resource is invalid"; + case LIB3MF_ERROR_INVALIDLEVELSET: return "A level set is invalid"; case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "This object type is not valid for beamlattices"; case LIB3MF_ERROR_INVALIDKEYSTORE: return "The keystore object is invalid"; case LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: return "The consumer keystore object is invalid"; @@ -287,6 +289,7 @@ typedef Lib3MFHandle Lib3MF_MatVecMultiplicationNode; typedef Lib3MFHandle Lib3MF_MinNode; typedef Lib3MFHandle Lib3MF_MaxNode; typedef Lib3MFHandle Lib3MF_FmodNode; +typedef Lib3MFHandle Lib3MF_ModNode; typedef Lib3MFHandle Lib3MF_PowNode; typedef Lib3MFHandle Lib3MF_SelectNode; typedef Lib3MFHandle Lib3MF_ClampNode; @@ -475,7 +478,7 @@ namespace Lib3MF { Min = 25, /** Calculates the minimum tow values */ Max = 26, /** Calculates the maximum of two values */ Abs = 27, /** Calcul the absolute value */ - Fmod = 28, /** Calculates the modulo of two values */ + Fmod = 28, /** Computes the remainder of the divison of the inputs (same behavior as C fmod) */ Pow = 29, /** Calculates the power A^B */ Sqrt = 30, /** Calculates the square root */ Exp = 31, /** Exponential function */ @@ -497,7 +500,8 @@ namespace Lib3MF { Length = 47, /** Calculates the length of a vector */ Resource = 48, /** Selects a resource (function, mesh etc.) */ VectorFromScalar = 49, /** Creates a vector from one scalar values */ - UnsignedMesh = 50 /** Calculates the unsigned distance to a mesh */ + UnsignedMesh = 50, /** Calculates the unsigned distance to a mesh */ + Mod = 51 /** Calculates the modulo of two values (same behaviour as glsl mod) */ }; /** diff --git a/Autogenerated/Bindings/Go/lib3mf.go b/Autogenerated/Bindings/Go/lib3mf.go index 385afe654..58256e1b7 100644 --- a/Autogenerated/Bindings/Go/lib3mf.go +++ b/Autogenerated/Bindings/Go/lib3mf.go @@ -5711,6 +5711,7 @@ const ( ImplicitNodeType_Resource = 48 ImplicitNodeType_VectorFromScalar = 49 ImplicitNodeType_UnsignedMesh = 50 + ImplicitNodeType_Mod = 51 ) // ImplicitPortType represents a Lib3MF enum. @@ -5892,6 +5893,7 @@ const LIB3MF_ERROR_INVALIDPROPERTYCOUNT = 132; const LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER = 140; const LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT = 141; const LIB3MF_ERROR_INVALIDRESOURCE = 142; +const LIB3MF_ERROR_INVALIDLEVELSET = 143; const LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE = 2000; const LIB3MF_ERROR_INVALIDKEYSTORE = 3000; const LIB3MF_ERROR_INVALIDKEYSTORECONSUMER = 3001; @@ -5988,6 +5990,8 @@ func errorMessage(errorcode uint32) string { return "An element buffer exceeds its spec limit"; case LIB3MF_ERROR_INVALIDRESOURCE: return "A resource is invalid"; + case LIB3MF_ERROR_INVALIDLEVELSET: + return "A level set is invalid"; case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "This object type is not valid for beamlattices"; case LIB3MF_ERROR_INVALIDKEYSTORE: @@ -10247,6 +10251,16 @@ func (wrapper Wrapper) NewFmodNode(r ref) FmodNode { } +// ModNode represents a Lib3MF class. +type ModNode struct { + TwoInputNode +} + +func (wrapper Wrapper) NewModNode(r ref) ModNode { + return ModNode{wrapper.NewTwoInputNode(r)} +} + + // PowNode represents a Lib3MF class. type PowNode struct { TwoInputNode diff --git a/Autogenerated/Bindings/Go/lib3mf_dynamic.h b/Autogenerated/Bindings/Go/lib3mf_dynamic.h index 0f941c3a2..9baaad589 100644 --- a/Autogenerated/Bindings/Go/lib3mf_dynamic.h +++ b/Autogenerated/Bindings/Go/lib3mf_dynamic.h @@ -3279,6 +3279,10 @@ typedef Lib3MFResult (*PLib3MFTwoInputNode_GetInputBPtr) (Lib3MF_TwoInputNode pT Class definition for FmodNode **************************************************************************************************************************/ +/************************************************************************************************************************* + Class definition for ModNode +**************************************************************************************************************************/ + /************************************************************************************************************************* Class definition for PowNode **************************************************************************************************************************/ diff --git a/Autogenerated/Bindings/Go/lib3mf_types.h b/Autogenerated/Bindings/Go/lib3mf_types.h index 4e858bf19..497ede263 100644 --- a/Autogenerated/Bindings/Go/lib3mf_types.h +++ b/Autogenerated/Bindings/Go/lib3mf_types.h @@ -130,6 +130,7 @@ typedef void * Lib3MF_pvoid; #define LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER 140 /** A progress identifier is unknown */ #define LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT 141 /** An element buffer exceeds its spec limit */ #define LIB3MF_ERROR_INVALIDRESOURCE 142 /** A resource is invalid */ +#define LIB3MF_ERROR_INVALIDLEVELSET 143 /** A level set is invalid */ #define LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE 2000 /** This object type is not valid for beamlattices */ #define LIB3MF_ERROR_INVALIDKEYSTORE 3000 /** The keystore object is invalid */ #define LIB3MF_ERROR_INVALIDKEYSTORECONSUMER 3001 /** The consumer keystore object is invalid */ @@ -185,6 +186,7 @@ inline const char * LIB3MF_GETERRORSTRING (Lib3MFResult nErrorCode) { case LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: return "A progress identifier is unknown"; case LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: return "An element buffer exceeds its spec limit"; case LIB3MF_ERROR_INVALIDRESOURCE: return "A resource is invalid"; + case LIB3MF_ERROR_INVALIDLEVELSET: return "A level set is invalid"; case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "This object type is not valid for beamlattices"; case LIB3MF_ERROR_INVALIDKEYSTORE: return "The keystore object is invalid"; case LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: return "The consumer keystore object is invalid"; @@ -288,6 +290,7 @@ typedef Lib3MFHandle Lib3MF_MatVecMultiplicationNode; typedef Lib3MFHandle Lib3MF_MinNode; typedef Lib3MFHandle Lib3MF_MaxNode; typedef Lib3MFHandle Lib3MF_FmodNode; +typedef Lib3MFHandle Lib3MF_ModNode; typedef Lib3MFHandle Lib3MF_PowNode; typedef Lib3MFHandle Lib3MF_SelectNode; typedef Lib3MFHandle Lib3MF_ClampNode; @@ -474,7 +477,7 @@ typedef enum eLib3MFImplicitNodeType { eImplicitNodeTypeMin = 25, /** Calculates the minimum tow values */ eImplicitNodeTypeMax = 26, /** Calculates the maximum of two values */ eImplicitNodeTypeAbs = 27, /** Calcul the absolute value */ - eImplicitNodeTypeFmod = 28, /** Calculates the modulo of two values */ + eImplicitNodeTypeFmod = 28, /** Computes the remainder of the divison of the inputs (same behavior as C fmod) */ eImplicitNodeTypePow = 29, /** Calculates the power A^B */ eImplicitNodeTypeSqrt = 30, /** Calculates the square root */ eImplicitNodeTypeExp = 31, /** Exponential function */ @@ -496,7 +499,8 @@ typedef enum eLib3MFImplicitNodeType { eImplicitNodeTypeLength = 47, /** Calculates the length of a vector */ eImplicitNodeTypeResource = 48, /** Selects a resource (function, mesh etc.) */ eImplicitNodeTypeVectorFromScalar = 49, /** Creates a vector from one scalar values */ - eImplicitNodeTypeUnsignedMesh = 50 /** Calculates the unsigned distance to a mesh */ + eImplicitNodeTypeUnsignedMesh = 50, /** Calculates the unsigned distance to a mesh */ + eImplicitNodeTypeMod = 51 /** Calculates the modulo of two values (same behaviour as glsl mod) */ } eLib3MFImplicitNodeType; /** diff --git a/Autogenerated/Bindings/NodeJS/lib3mf_dynamic.h b/Autogenerated/Bindings/NodeJS/lib3mf_dynamic.h index 0f941c3a2..9baaad589 100644 --- a/Autogenerated/Bindings/NodeJS/lib3mf_dynamic.h +++ b/Autogenerated/Bindings/NodeJS/lib3mf_dynamic.h @@ -3279,6 +3279,10 @@ typedef Lib3MFResult (*PLib3MFTwoInputNode_GetInputBPtr) (Lib3MF_TwoInputNode pT Class definition for FmodNode **************************************************************************************************************************/ +/************************************************************************************************************************* + Class definition for ModNode +**************************************************************************************************************************/ + /************************************************************************************************************************* Class definition for PowNode **************************************************************************************************************************/ diff --git a/Autogenerated/Bindings/NodeJS/lib3mf_nodeaddon.cc b/Autogenerated/Bindings/NodeJS/lib3mf_nodeaddon.cc index f7a282217..5e403cfd6 100644 --- a/Autogenerated/Bindings/NodeJS/lib3mf_nodeaddon.cc +++ b/Autogenerated/Bindings/NodeJS/lib3mf_nodeaddon.cc @@ -132,6 +132,7 @@ void InitAll(v8::Local exports, v8::Local module) CLib3MFMinNode::Init(); CLib3MFMaxNode::Init(); CLib3MFFmodNode::Init(); + CLib3MFModNode::Init(); CLib3MFPowNode::Init(); CLib3MFSelectNode::Init(); CLib3MFClampNode::Init(); diff --git a/Autogenerated/Bindings/NodeJS/lib3mf_nodewrapper.cc b/Autogenerated/Bindings/NodeJS/lib3mf_nodewrapper.cc index 3fa8485db..1f84240bc 100644 --- a/Autogenerated/Bindings/NodeJS/lib3mf_nodewrapper.cc +++ b/Autogenerated/Bindings/NodeJS/lib3mf_nodewrapper.cc @@ -125,6 +125,7 @@ Persistent CLib3MFMatVecMultiplicationNode::constructor; Persistent CLib3MFMinNode::constructor; Persistent CLib3MFMaxNode::constructor; Persistent CLib3MFFmodNode::constructor; +Persistent CLib3MFModNode::constructor; Persistent CLib3MFPowNode::constructor; Persistent CLib3MFSelectNode::constructor; Persistent CLib3MFClampNode::constructor; @@ -13711,6 +13712,61 @@ Local CLib3MFFmodNode::NewInstance(Local pParent, Lib3MFHandle p return instance; } +/************************************************************************************************************************* + Class CLib3MFModNode Implementation +**************************************************************************************************************************/ + +CLib3MFModNode::CLib3MFModNode() + : CLib3MFBaseClass() +{ +} + +CLib3MFModNode::~CLib3MFModNode() +{ +} + +void CLib3MFModNode::Init() +{ + Isolate* isolate = Isolate::GetCurrent(); + + // Prepare constructor template + Local tpl = FunctionTemplate::New(isolate, New); + tpl->SetClassName(String::NewFromUtf8(isolate, "Lib3MFModNode")); + tpl->InstanceTemplate()->SetInternalFieldCount(NODEWRAPPER_FIELDCOUNT); + + // Prototype + constructor.Reset(isolate, tpl->GetFunction(isolate->GetCurrentContext()).ToLocalChecked()); + +} + +void CLib3MFModNode::New(const FunctionCallbackInfo& args) +{ + Isolate* isolate = args.GetIsolate(); + HandleScope scope(isolate); + + if (args.IsConstructCall()) { + CLib3MFBaseClass * holderObj = ObjectWrap::Unwrap(args.Holder()); + CLib3MFModNode * modnodeInstance = new CLib3MFModNode(); + modnodeInstance->Wrap(args.This()); + args.GetReturnValue().Set(args.This()); + } else { + RaiseError(isolate, "Lib3MFModNode: Invalid call to Constructor"); + } +} + +Local CLib3MFModNode::NewInstance(Local pParent, Lib3MFHandle pHandle) +{ + Isolate* isolate = Isolate::GetCurrent(); + HandleScope scope(isolate); + Local cons = Local::New(isolate, constructor); + Local instance; + if (cons->NewInstance(isolate->GetCurrentContext()).ToLocal(&instance)) { + instance->SetInternalField(NODEWRAPPER_TABLEINDEX, External::New(isolate, CLib3MFBaseClass::getDynamicWrapperTable(pParent))); + instance->SetInternalField(NODEWRAPPER_HANDLEINDEX, External::New(isolate, pHandle)); + } + return instance; +} + /************************************************************************************************************************* Class CLib3MFPowNode Implementation **************************************************************************************************************************/ @@ -23623,6 +23679,7 @@ void CLib3MFWrapper::New(const FunctionCallbackInfo& args) newObject->Set(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "eImplicitNodeType_Resource"), Integer::New(isolate, 48)); newObject->Set(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "eImplicitNodeType_VectorFromScalar"), Integer::New(isolate, 49)); newObject->Set(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "eImplicitNodeType_UnsignedMesh"), Integer::New(isolate, 50)); + newObject->Set(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "eImplicitNodeType_Mod"), Integer::New(isolate, 51)); newObject->Set(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "eImplicitPortType_Scalar"), Integer::New(isolate, 1)); newObject->Set(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "eImplicitPortType_Vector"), Integer::New(isolate, 2)); newObject->Set(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "eImplicitPortType_Matrix"), Integer::New(isolate, 3)); diff --git a/Autogenerated/Bindings/NodeJS/lib3mf_nodewrapper.h b/Autogenerated/Bindings/NodeJS/lib3mf_nodewrapper.h index 6427ce459..02ccb6ac3 100644 --- a/Autogenerated/Bindings/NodeJS/lib3mf_nodewrapper.h +++ b/Autogenerated/Bindings/NodeJS/lib3mf_nodewrapper.h @@ -1798,6 +1798,23 @@ class CLib3MFFmodNode : public CLib3MFBaseClass { }; +/************************************************************************************************************************* + Class CLib3MFModNode +**************************************************************************************************************************/ +class CLib3MFModNode : public CLib3MFBaseClass { +private: + static void New(const v8::FunctionCallbackInfo& args); + static v8::Persistent constructor; + +public: + CLib3MFModNode(); + ~CLib3MFModNode(); + + static void Init(); + static v8::Local NewInstance(v8::Local, Lib3MFHandle pHandle); + +}; + /************************************************************************************************************************* Class CLib3MFPowNode **************************************************************************************************************************/ diff --git a/Autogenerated/Bindings/NodeJS/lib3mf_types.h b/Autogenerated/Bindings/NodeJS/lib3mf_types.h index 4e858bf19..497ede263 100644 --- a/Autogenerated/Bindings/NodeJS/lib3mf_types.h +++ b/Autogenerated/Bindings/NodeJS/lib3mf_types.h @@ -130,6 +130,7 @@ typedef void * Lib3MF_pvoid; #define LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER 140 /** A progress identifier is unknown */ #define LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT 141 /** An element buffer exceeds its spec limit */ #define LIB3MF_ERROR_INVALIDRESOURCE 142 /** A resource is invalid */ +#define LIB3MF_ERROR_INVALIDLEVELSET 143 /** A level set is invalid */ #define LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE 2000 /** This object type is not valid for beamlattices */ #define LIB3MF_ERROR_INVALIDKEYSTORE 3000 /** The keystore object is invalid */ #define LIB3MF_ERROR_INVALIDKEYSTORECONSUMER 3001 /** The consumer keystore object is invalid */ @@ -185,6 +186,7 @@ inline const char * LIB3MF_GETERRORSTRING (Lib3MFResult nErrorCode) { case LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: return "A progress identifier is unknown"; case LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: return "An element buffer exceeds its spec limit"; case LIB3MF_ERROR_INVALIDRESOURCE: return "A resource is invalid"; + case LIB3MF_ERROR_INVALIDLEVELSET: return "A level set is invalid"; case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "This object type is not valid for beamlattices"; case LIB3MF_ERROR_INVALIDKEYSTORE: return "The keystore object is invalid"; case LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: return "The consumer keystore object is invalid"; @@ -288,6 +290,7 @@ typedef Lib3MFHandle Lib3MF_MatVecMultiplicationNode; typedef Lib3MFHandle Lib3MF_MinNode; typedef Lib3MFHandle Lib3MF_MaxNode; typedef Lib3MFHandle Lib3MF_FmodNode; +typedef Lib3MFHandle Lib3MF_ModNode; typedef Lib3MFHandle Lib3MF_PowNode; typedef Lib3MFHandle Lib3MF_SelectNode; typedef Lib3MFHandle Lib3MF_ClampNode; @@ -474,7 +477,7 @@ typedef enum eLib3MFImplicitNodeType { eImplicitNodeTypeMin = 25, /** Calculates the minimum tow values */ eImplicitNodeTypeMax = 26, /** Calculates the maximum of two values */ eImplicitNodeTypeAbs = 27, /** Calcul the absolute value */ - eImplicitNodeTypeFmod = 28, /** Calculates the modulo of two values */ + eImplicitNodeTypeFmod = 28, /** Computes the remainder of the divison of the inputs (same behavior as C fmod) */ eImplicitNodeTypePow = 29, /** Calculates the power A^B */ eImplicitNodeTypeSqrt = 30, /** Calculates the square root */ eImplicitNodeTypeExp = 31, /** Exponential function */ @@ -496,7 +499,8 @@ typedef enum eLib3MFImplicitNodeType { eImplicitNodeTypeLength = 47, /** Calculates the length of a vector */ eImplicitNodeTypeResource = 48, /** Selects a resource (function, mesh etc.) */ eImplicitNodeTypeVectorFromScalar = 49, /** Creates a vector from one scalar values */ - eImplicitNodeTypeUnsignedMesh = 50 /** Calculates the unsigned distance to a mesh */ + eImplicitNodeTypeUnsignedMesh = 50, /** Calculates the unsigned distance to a mesh */ + eImplicitNodeTypeMod = 51 /** Calculates the modulo of two values (same behaviour as glsl mod) */ } eLib3MFImplicitNodeType; /** diff --git a/Autogenerated/Bindings/Pascal/Unit_Lib3MF.pas b/Autogenerated/Bindings/Pascal/Unit_Lib3MF.pas index 88f685def..a62948185 100644 --- a/Autogenerated/Bindings/Pascal/Unit_Lib3MF.pas +++ b/Autogenerated/Bindings/Pascal/Unit_Lib3MF.pas @@ -113,6 +113,7 @@ interface LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER = 140; LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT = 141; LIB3MF_ERROR_INVALIDRESOURCE = 142; + LIB3MF_ERROR_INVALIDLEVELSET = 143; LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE = 2000; LIB3MF_ERROR_INVALIDKEYSTORE = 3000; LIB3MF_ERROR_INVALIDKEYSTORECONSUMER = 3001; @@ -301,7 +302,8 @@ interface eImplicitNodeTypeLength, eImplicitNodeTypeResource, eImplicitNodeTypeVectorFromScalar, - eImplicitNodeTypeUnsignedMesh + eImplicitNodeTypeUnsignedMesh, + eImplicitNodeTypeMod ); TLib3MFImplicitPortType = ( @@ -555,6 +557,7 @@ TLib3MFMatVecMultiplicationNode = class; TLib3MFMinNode = class; TLib3MFMaxNode = class; TLib3MFFmodNode = class; + TLib3MFModNode = class; TLib3MFPowNode = class; TLib3MFSelectNode = class; TLib3MFClampNode = class; @@ -3910,6 +3913,11 @@ TLib3MFModel = class; **************************************************************************************************************************) +(************************************************************************************************************************* + Function type definitions for ModNode +**************************************************************************************************************************) + + (************************************************************************************************************************* Function type definitions for PowNode **************************************************************************************************************************) @@ -8336,6 +8344,17 @@ TLib3MFFmodNode = class(TLib3MFTwoInputNode) end; +(************************************************************************************************************************* + Class definition for ModNode +**************************************************************************************************************************) + + TLib3MFModNode = class(TLib3MFTwoInputNode) + public + constructor Create(AWrapper: TLib3MFWrapper; AHandle: TLib3MFHandle); + destructor Destroy; override; + end; + + (************************************************************************************************************************* Class definition for PowNode **************************************************************************************************************************) @@ -10329,6 +10348,7 @@ TLib3MFPolymorphicFactory<_T:class; _B> = record function TLib3MFPolymorphicFactoryMakeMinNode(Wrapper: TLib3MFWrapper; Handle: TLib3MFHandle): TLIB3MFMinNode; function TLib3MFPolymorphicFactoryMakeMaxNode(Wrapper: TLib3MFWrapper; Handle: TLib3MFHandle): TLIB3MFMaxNode; function TLib3MFPolymorphicFactoryMakeFmodNode(Wrapper: TLib3MFWrapper; Handle: TLib3MFHandle): TLIB3MFFmodNode; + function TLib3MFPolymorphicFactoryMakeModNode(Wrapper: TLib3MFWrapper; Handle: TLib3MFHandle): TLIB3MFModNode; function TLib3MFPolymorphicFactoryMakePowNode(Wrapper: TLib3MFWrapper; Handle: TLib3MFHandle): TLIB3MFPowNode; function TLib3MFPolymorphicFactoryMakeSelectNode(Wrapper: TLib3MFWrapper; Handle: TLib3MFHandle): TLIB3MFSelectNode; function TLib3MFPolymorphicFactoryMakeClampNode(Wrapper: TLib3MFWrapper; Handle: TLib3MFHandle): TLIB3MFClampNode; @@ -10824,6 +10844,7 @@ implementation eImplicitNodeTypeResource: Result := 48; eImplicitNodeTypeVectorFromScalar: Result := 49; eImplicitNodeTypeUnsignedMesh: Result := 50; + eImplicitNodeTypeMod: Result := 51; else raise ELib3MFException.CreateCustomMessage(LIB3MF_ERROR_INVALIDPARAM, 'invalid enum value'); end; @@ -10882,6 +10903,7 @@ implementation 48: Result := eImplicitNodeTypeResource; 49: Result := eImplicitNodeTypeVectorFromScalar; 50: Result := eImplicitNodeTypeUnsignedMesh; + 51: Result := eImplicitNodeTypeMod; else raise ELib3MFException.CreateCustomMessage(LIB3MF_ERROR_INVALIDPARAM, 'invalid enum constant'); end; @@ -11150,6 +11172,7 @@ implementation QWord($846AFDE9A091E997): begin Obj := TLIB3MFMinNode.Create(Wrapper, Handle); if Obj.inheritsFrom(_T) then Result := Obj as _T; end; // First 64 bits of SHA1 of a string: "Lib3MF::MinNode" QWord($073F910381BF250D): begin Obj := TLIB3MFMaxNode.Create(Wrapper, Handle); if Obj.inheritsFrom(_T) then Result := Obj as _T; end; // First 64 bits of SHA1 of a string: "Lib3MF::MaxNode" QWord($1EF703D298223F2A): begin Obj := TLIB3MFFmodNode.Create(Wrapper, Handle); if Obj.inheritsFrom(_T) then Result := Obj as _T; end; // First 64 bits of SHA1 of a string: "Lib3MF::FmodNode" + QWord($EA57335849379F22): begin Obj := TLIB3MFModNode.Create(Wrapper, Handle); if Obj.inheritsFrom(_T) then Result := Obj as _T; end; // First 64 bits of SHA1 of a string: "Lib3MF::ModNode" QWord($7700AA17CA1AC0F8): begin Obj := TLIB3MFPowNode.Create(Wrapper, Handle); if Obj.inheritsFrom(_T) then Result := Obj as _T; end; // First 64 bits of SHA1 of a string: "Lib3MF::PowNode" QWord($1127ED71E05A9BD4): begin Obj := TLIB3MFSelectNode.Create(Wrapper, Handle); if Obj.inheritsFrom(_T) then Result := Obj as _T; end; // First 64 bits of SHA1 of a string: "Lib3MF::SelectNode" QWord($77AF68C971B1485F): begin Obj := TLIB3MFClampNode.Create(Wrapper, Handle); if Obj.inheritsFrom(_T) then Result := Obj as _T; end; // First 64 bits of SHA1 of a string: "Lib3MF::ClampNode" @@ -11519,6 +11542,10 @@ implementation begin Result := TLib3MFPolymorphicFactory.Make(Wrapper, Handle); end; + function TLib3MFPolymorphicFactoryMakeModNode(Wrapper: TLib3MFWrapper; Handle: TLib3MFHandle): TLIB3MFModNode; + begin + Result := TLib3MFPolymorphicFactory.Make(Wrapper, Handle); + end; function TLib3MFPolymorphicFactoryMakePowNode(Wrapper: TLib3MFWrapper; Handle: TLib3MFHandle): TLIB3MFPowNode; begin Result := TLib3MFPolymorphicFactory.Make(Wrapper, Handle); @@ -11686,6 +11713,7 @@ implementation LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: ADescription := 'A progress identifier is unknown'; LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: ADescription := 'An element buffer exceeds its spec limit'; LIB3MF_ERROR_INVALIDRESOURCE: ADescription := 'A resource is invalid'; + LIB3MF_ERROR_INVALIDLEVELSET: ADescription := 'A level set is invalid'; LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: ADescription := 'This object type is not valid for beamlattices'; LIB3MF_ERROR_INVALIDKEYSTORE: ADescription := 'The keystore object is invalid'; LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: ADescription := 'The consumer keystore object is invalid'; @@ -15498,6 +15526,20 @@ implementation inherited; end; +(************************************************************************************************************************* + Class implementation for ModNode +**************************************************************************************************************************) + + constructor TLib3MFModNode.Create(AWrapper: TLib3MFWrapper; AHandle: TLib3MFHandle); + begin + inherited Create(AWrapper, AHandle); + end; + + destructor TLib3MFModNode.Destroy; + begin + inherited; + end; + (************************************************************************************************************************* Class implementation for PowNode **************************************************************************************************************************) diff --git a/Autogenerated/Bindings/Python/Lib3MF.py b/Autogenerated/Bindings/Python/Lib3MF.py index a079439c7..4dde3b5e5 100644 --- a/Autogenerated/Bindings/Python/Lib3MF.py +++ b/Autogenerated/Bindings/Python/Lib3MF.py @@ -100,6 +100,7 @@ class ErrorCodes(enum.IntEnum): UNKOWNPROGRESSIDENTIFIER = 140 ELEMENTCOUNTEXCEEDSLIMIT = 141 INVALIDRESOURCE = 142 + INVALIDLEVELSET = 143 BEAMLATTICE_INVALID_OBJECTTYPE = 2000 INVALIDKEYSTORE = 3000 INVALIDKEYSTORECONSUMER = 3001 @@ -899,6 +900,7 @@ class ImplicitNodeType(CTypesEnum): Resource = 48 VectorFromScalar = 49 UnsignedMesh = 50 + Mod = 51 '''Definition of ImplicitPortType ''' class ImplicitPortType(CTypesEnum): @@ -6913,6 +6915,8 @@ def getObjectById_073F910381BF250D(self, handle, wrapper): # First 64 bits of SH return MaxNode(handle, wrapper) def getObjectById_1EF703D298223F2A(self, handle, wrapper): # First 64 bits of SHA1 of a string: "Lib3MF::FmodNode" return FmodNode(handle, wrapper) + def getObjectById_EA57335849379F22(self, handle, wrapper): # First 64 bits of SHA1 of a string: "Lib3MF::ModNode" + return ModNode(handle, wrapper) def getObjectById_7700AA17CA1AC0F8(self, handle, wrapper): # First 64 bits of SHA1 of a string: "Lib3MF::PowNode" return PowNode(handle, wrapper) def getObjectById_1127ED71E05A9BD4(self, handle, wrapper): # First 64 bits of SHA1 of a string: "Lib3MF::SelectNode" @@ -9862,6 +9866,13 @@ def __init__(self, handle, wrapper): TwoInputNode.__init__(self, handle, wrapper) +''' Class Implementation for ModNode +''' +class ModNode(TwoInputNode): + def __init__(self, handle, wrapper): + TwoInputNode.__init__(self, handle, wrapper) + + ''' Class Implementation for PowNode ''' class PowNode(TwoInputNode): diff --git a/Autogenerated/Source/lib3mf_abi.hpp b/Autogenerated/Source/lib3mf_abi.hpp index 1601c7c92..c27922c02 100644 --- a/Autogenerated/Source/lib3mf_abi.hpp +++ b/Autogenerated/Source/lib3mf_abi.hpp @@ -3292,6 +3292,10 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_twoinputnode_getinputb(Lib3MF_TwoInputNode p Class definition for FmodNode **************************************************************************************************************************/ +/************************************************************************************************************************* + Class definition for ModNode +**************************************************************************************************************************/ + /************************************************************************************************************************* Class definition for PowNode **************************************************************************************************************************/ diff --git a/Autogenerated/Source/lib3mf_interfaces.hpp b/Autogenerated/Source/lib3mf_interfaces.hpp index 374148766..08a95f027 100644 --- a/Autogenerated/Source/lib3mf_interfaces.hpp +++ b/Autogenerated/Source/lib3mf_interfaces.hpp @@ -135,6 +135,7 @@ class IMatVecMultiplicationNode; class IMinNode; class IMaxNode; class IFmodNode; +class IModNode; class IPowNode; class ISelectNode; class IClampNode; @@ -3971,6 +3972,26 @@ class IFmodNode : public virtual ITwoInputNode { typedef IBaseSharedPtr PIFmodNode; +/************************************************************************************************************************* + Class interface for ModNode +**************************************************************************************************************************/ + +class IModNode : public virtual ITwoInputNode { +public: + /** + * IModNode::ClassTypeId - Get Class Type Id + * @return Class type as a 64 bits integer + */ + Lib3MF_uint64 ClassTypeId() override + { + return 0xEA57335849379F22UL; // First 64 bits of SHA1 of a string: "Lib3MF::ModNode" + } + +}; + +typedef IBaseSharedPtr PIModNode; + + /************************************************************************************************************************* Class interface for PowNode **************************************************************************************************************************/ diff --git a/Autogenerated/Source/lib3mf_interfacewrapper.cpp b/Autogenerated/Source/lib3mf_interfacewrapper.cpp index fa5f71a6a..2f171eda9 100644 --- a/Autogenerated/Source/lib3mf_interfacewrapper.cpp +++ b/Autogenerated/Source/lib3mf_interfacewrapper.cpp @@ -11446,6 +11446,10 @@ Lib3MFResult lib3mf_twoinputnode_getinputb(Lib3MF_TwoInputNode pTwoInputNode, Li Class implementation for FmodNode **************************************************************************************************************************/ +/************************************************************************************************************************* + Class implementation for ModNode +**************************************************************************************************************************/ + /************************************************************************************************************************* Class implementation for PowNode **************************************************************************************************************************/ diff --git a/Autogenerated/Source/lib3mf_types.hpp b/Autogenerated/Source/lib3mf_types.hpp index e5b0a3bf4..e3ab36dbb 100644 --- a/Autogenerated/Source/lib3mf_types.hpp +++ b/Autogenerated/Source/lib3mf_types.hpp @@ -129,7 +129,7 @@ typedef void * Lib3MF_pvoid; #define LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER 140 /** A progress identifier is unknown */ #define LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT 141 /** An element buffer exceeds its spec limit */ #define LIB3MF_ERROR_INVALIDRESOURCE 142 /** A resource is invalid */ -#define LIB3MF_ERROR_INVALIDLEVELSETRESOURCE 143 /** A level set resource is invalid */ +#define LIB3MF_ERROR_INVALIDLEVELSET 143 /** A level set is invalid */ #define LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE 2000 /** This object type is not valid for beamlattices */ #define LIB3MF_ERROR_INVALIDKEYSTORE 3000 /** The keystore object is invalid */ #define LIB3MF_ERROR_INVALIDKEYSTORECONSUMER 3001 /** The consumer keystore object is invalid */ @@ -185,6 +185,7 @@ inline const char * LIB3MF_GETERRORSTRING (Lib3MFResult nErrorCode) { case LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: return "A progress identifier is unknown"; case LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: return "An element buffer exceeds its spec limit"; case LIB3MF_ERROR_INVALIDRESOURCE: return "A resource is invalid"; + case LIB3MF_ERROR_INVALIDLEVELSET: return "A level set is invalid"; case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "This object type is not valid for beamlattices"; case LIB3MF_ERROR_INVALIDKEYSTORE: return "The keystore object is invalid"; case LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: return "The consumer keystore object is invalid"; @@ -288,6 +289,7 @@ typedef Lib3MFHandle Lib3MF_MatVecMultiplicationNode; typedef Lib3MFHandle Lib3MF_MinNode; typedef Lib3MFHandle Lib3MF_MaxNode; typedef Lib3MFHandle Lib3MF_FmodNode; +typedef Lib3MFHandle Lib3MF_ModNode; typedef Lib3MFHandle Lib3MF_PowNode; typedef Lib3MFHandle Lib3MF_SelectNode; typedef Lib3MFHandle Lib3MF_ClampNode; @@ -476,7 +478,7 @@ namespace Lib3MF { Min = 25, /** Calculates the minimum tow values */ Max = 26, /** Calculates the maximum of two values */ Abs = 27, /** Calcul the absolute value */ - Fmod = 28, /** Calculates the modulo of two values */ + Fmod = 28, /** Computes the remainder of the divison of the inputs (same behavior as C fmod) */ Pow = 29, /** Calculates the power A^B */ Sqrt = 30, /** Calculates the square root */ Exp = 31, /** Exponential function */ @@ -498,7 +500,8 @@ namespace Lib3MF { Length = 47, /** Calculates the length of a vector */ Resource = 48, /** Selects a resource (function, mesh etc.) */ VectorFromScalar = 49, /** Creates a vector from one scalar values */ - UnsignedMesh = 50 /** Calculates the unsigned distance to a mesh */ + UnsignedMesh = 50, /** Calculates the unsigned distance to a mesh */ + Mod = 51 /** Calculates the modulo of two values (same behaviour as glsl mod) */ }; /** diff --git a/AutomaticComponentToolkit/lib3mf.xml b/AutomaticComponentToolkit/lib3mf.xml index 9835552b2..6fd23fa8a 100644 --- a/AutomaticComponentToolkit/lib3mf.xml +++ b/AutomaticComponentToolkit/lib3mf.xml @@ -97,8 +97,7 @@ - - + @@ -1900,7 +1899,7 @@