ai_node_entry.h
1 /*
2  * Arnold API header file
3  * Copyright (c) 1998-2009 Marcos Fajardo, (c) 2009-2013 Solid Angle SL
4  */
5 
11 #pragma once
12 #include "ai_params.h"
13 #include "ai_api.h"
14 
15 // forward declarations
16 struct AtNode;
17 struct AtList;
18 struct AtMetaDataStore;
19 
30 #define AI_NODE_UNDEFINED 0x0000
31 #define AI_NODE_OPTIONS 0x0001
32 #define AI_NODE_CAMERA 0x0002
33 #define AI_NODE_LIGHT 0x0004
34 #define AI_NODE_SHAPE 0x0008
35 #define AI_NODE_SHADER 0x0010
36 #define AI_NODE_OVERRIDE 0x0020
37 #define AI_NODE_DRIVER 0x0040
38 #define AI_NODE_FILTER 0x0080
39 #define AI_NODE_ALL 0xFFFF
40 /* \}*/
41 
46 {
47  void (*Parameters)(AtList*, AtMetaDataStore*);
48  void (*Initialize)(AtNode*, AtParamValue*);
49  void (*Update )(AtNode*, AtParamValue*);
50  void (*Finish )(AtNode*);
51 };
52 
57 {
59  void* dmethods;
60 };
61 
69 struct AtNodeEntry;
70 
72 {
73  const char* name;
74  const char* param;
75  AtByte type;
76  AtParamValue value;
77 };
78 
79 struct AtParamIterator;
80 struct AtMetaDataIterator;
81 
86 AI_API const AtNodeEntry* AiNodeEntryLookUp (const char* name);
87 AI_API const char* AiNodeEntryGetName (const AtNodeEntry* nentry);
88 AI_API int AiNodeEntryGetType (const AtNodeEntry* nentry);
89 AI_API const char* AiNodeEntryGetTypeName (const AtNodeEntry* nentry);
90 AI_API int AiNodeEntryGetOutputType (const AtNodeEntry* nentry);
91 AI_API const char* AiNodeEntryGetFilename (const AtNodeEntry* nentry);
92 AI_API const char* AiNodeEntryGetVersion (const AtNodeEntry* nentry);
93 AI_API int AiNodeEntryGetCount (const AtNodeEntry* nentry);
94 AI_API int AiNodeEntryGetNumParams (const AtNodeEntry* nentry);
95 AI_API const AtParamEntry* AiNodeEntryGetParameter (const AtNodeEntry* nentry, int i);
96 AI_API const AtParamEntry* AiNodeEntryLookUpParameter (const AtNodeEntry* nentry, const char* param);
97 AI_API AtParamIterator* AiNodeEntryGetParamIterator (const AtNodeEntry* nentry);
98 AI_API AtMetaDataIterator* AiNodeEntryGetMetaDataIterator(const AtNodeEntry* nentry, const char* param = NULL);
99 AI_API void AiNodeEntryInstall (int type, AtByte output_type, const char* name, const char* filename, AtNodeMethods* methods, const char* version);
100 AI_API void AiNodeEntryUninstall (const char* name);
101 /* \}*/
102 
107 AI_API void AiParamIteratorDestroy(AtParamIterator* iter);
108 AI_API const AtParamEntry* AiParamIteratorGetNext(AtParamIterator* iter);
109 AI_API bool AiParamIteratorFinished(const AtParamIterator* iter);
110 /* \}*/
111 
116 AI_API void AiMetaDataIteratorDestroy(AtMetaDataIterator* iter);
117 AI_API const AtMetaDataEntry* AiMetaDataIteratorGetNext(AtMetaDataIterator* iter);
118 AI_API bool AiMetaDataIteratorFinished(const AtMetaDataIterator* iter);
119 /* \}*/
120 
121 /*\}*/

© 2009-2013 Solid Angle SL · all rights reserved · www.solidangle.com