Skip to content

Commit

Permalink
[implicit] Adding mod (glsl) node
Browse files Browse the repository at this point in the history
  • Loading branch information
3dJan committed Apr 10, 2024
1 parent 6bff80e commit 37e5ba8
Show file tree
Hide file tree
Showing 30 changed files with 443 additions and 22 deletions.
4 changes: 4 additions & 0 deletions Autogenerated/Bindings/C/lib3mf.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
**************************************************************************************************************************/
Expand Down
8 changes: 6 additions & 2 deletions Autogenerated/Bindings/C/lib3mf_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down Expand Up @@ -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";
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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 */
Expand All @@ -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;

/**
Expand Down
4 changes: 4 additions & 0 deletions Autogenerated/Bindings/CDynamic/lib3mf_dynamic.h
Original file line number Diff line number Diff line change
Expand Up @@ -3279,6 +3279,10 @@ typedef Lib3MFResult (*PLib3MFTwoInputNode_GetInputBPtr) (Lib3MF_TwoInputNode pT
Class definition for FmodNode
**************************************************************************************************************************/

/*************************************************************************************************************************
Class definition for ModNode
**************************************************************************************************************************/

/*************************************************************************************************************************
Class definition for PowNode
**************************************************************************************************************************/
Expand Down
8 changes: 6 additions & 2 deletions Autogenerated/Bindings/CDynamic/lib3mf_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down Expand Up @@ -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";
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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 */
Expand All @@ -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;

/**
Expand Down
12 changes: 11 additions & 1 deletion Autogenerated/Bindings/CSharp/Lib3MF.cs
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,8 @@ public enum eImplicitNodeType {
Length = 47,
Resource = 48,
VectorFromScalar = 49,
UnsignedMesh = 50
UnsignedMesh = 50,
Mod = 51
};

public enum eImplicitPortType {
Expand Down Expand Up @@ -2676,6 +2677,7 @@ public static T PolymorphicFactory<T>(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"
Expand Down Expand Up @@ -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)
Expand Down
4 changes: 4 additions & 0 deletions Autogenerated/Bindings/Cpp/lib3mf_abi.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
**************************************************************************************************************************/
Expand Down
28 changes: 28 additions & 0 deletions Autogenerated/Bindings/Cpp/lib3mf_implicit.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ class CMatVecMultiplicationNode;
class CMinNode;
class CMaxNode;
class CFmodNode;
class CModNode;
class CPowNode;
class CSelectNode;
class CClampNode;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -379,6 +381,7 @@ typedef std::shared_ptr<CMatVecMultiplicationNode> PMatVecMultiplicationNode;
typedef std::shared_ptr<CMinNode> PMinNode;
typedef std::shared_ptr<CMaxNode> PMaxNode;
typedef std::shared_ptr<CFmodNode> PFmodNode;
typedef std::shared_ptr<CModNode> PModNode;
typedef std::shared_ptr<CPowNode> PPowNode;
typedef std::shared_ptr<CSelectNode> PSelectNode;
typedef std::shared_ptr<CClampNode> PClampNode;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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";
Expand Down Expand Up @@ -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";
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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
**************************************************************************************************************************/
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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
*/
Expand Down
8 changes: 6 additions & 2 deletions Autogenerated/Bindings/Cpp/lib3mf_types.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down Expand Up @@ -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";
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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 */
Expand All @@ -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) */
};

/**
Expand Down
4 changes: 4 additions & 0 deletions Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.h
Original file line number Diff line number Diff line change
Expand Up @@ -3279,6 +3279,10 @@ typedef Lib3MFResult (*PLib3MFTwoInputNode_GetInputBPtr) (Lib3MF_TwoInputNode pT
Class definition for FmodNode
**************************************************************************************************************************/

/*************************************************************************************************************************
Class definition for ModNode
**************************************************************************************************************************/

/*************************************************************************************************************************
Class definition for PowNode
**************************************************************************************************************************/
Expand Down
Loading

0 comments on commit 37e5ba8

Please sign in to comment.