Main Page
Related Pages
Modules
Data Structures
core
include
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
45
struct
AtCommonMethods
46
{
47
void (*Parameters)(AtList*, AtMetaDataStore*);
48
void (*Initialize)(
AtNode
*,
AtParamValue
*);
49
void (*Update )(
AtNode
*,
AtParamValue
*);
50
void (*Finish )(
AtNode
*);
51
};
52
56
struct
AtNodeMethods
57
{
58
AtCommonMethods
*
cmethods
;
59
void
*
dmethods
;
60
};
61
69
struct
AtNodeEntry
;
70
71
struct
AtMetaDataEntry
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