HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
STY_Types.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: STY_Types.h ( STY Library, C++)
7  *
8  * COMMENTS:
9  */
10 
11 #ifndef __STY_Types__
12 #define __STY_Types__
13 
14 #include "STY_API.h"
15 #include <UT/UT_Set.h>
16 #include <UT/UT_SharedPtr.h>
17 #include <UT/UT_StringMap.h>
18 #include <UT/UT_IntrusivePtr.h>
19 #include <UT/UT_Array.h>
20 
21 /// Style sheet categories.
28 
29 /// Common Target requirements.
30 /// Name: the name of the target (eg, prim ID or its 'name' attrib value).
32 /// Path: for brevity it describes the target hierarchy in terms
33 /// of a single string (similar to file paths).
35 /// Object name: the name of the geometry object.
37 /// Object tag: a tag expression tested against the geometry object tags.
39 /// Object bundle: a bundle that tests the geometry object for membership.
41 /// Prim Group: ad-hoc primitive group the target needs to belong to).
43 /// Point Group: ad-hoc point group the target needs to belong to).
45 /// Vertex Group: eg, ad-hoc vertex group the target needs to belong to).
47 /// Shape: shape, eg, the name of the agent's shape.
49 
50 /// Class to push and pop information used to generate error messages.
51 /// The string data is not copied, so must remain valid for the lifetime
52 /// of the scope object. The information is kept for each thread.
54 {
55 public:
56  STY_ErrorScope(const char *source_location, const char *source);
57  ~STY_ErrorScope();
58 };
59 
60 /// We want to load style sheets differently depending on whether we are
61 /// loading them to construct a STY_Styler and do actual styling, or if
62 /// we are loading them to edit their contents in the UI.
64 {
67 };
68 
69 /// Flags that may be set on stylesheets.
71 {
75 };
76 
77 /// Flags that may be set on styles.
79 {
84 };
85 
86 
87 // Represents a value object used in STY library.
88 class UT_OptionEntry;
92 
93 /// Represents a script that calculates an override value.
94 class STY_OverrideScript;
97 
98 /// Represents an override definition contained in a style.
99 class STY_Override;
102 
103 /// A set of related overrides, eg, overrides for material parameters.
107 
108 /// Targets an entity to be overriden by a style.
109 class STY_Target;
111 
112 /// Defines a target entity and a collection of override sets.
113 class STY_Style;
115 
116 /// Represents an entity whose properties to override, if it matches the target.
117 class STY_Subject;
119 
120 /// Represents a set of override categories grouped together to define a look.
121 class STY_OverrideBlock;
124 
125 /// Map of override categories to lists of override names.
127 
128 /// Represents binding between a script parameter and an arg value data source.
129 class STY_Binding;
131 
132 /// Represents a data source from which arg values are taken.
136 
137 /// Represents a target match closure, ie a subject that matched a target.
141 
142 /// Represents a styler match.
143 class STY_StylerMatch;
145 
146 /// Represents a group matche.
147 class STY_StylerGroupMatch;
149 
150 /// Represents a material definition, eg, a shader name and initial arguments.
151 class STY_Material;
154 
155 /// Represents a style sheet that packages all the above elements.
156 class STY_StyleSheet;
158 
159 
160 #endif
161 
STY_API const UT_StringHolder STY_REQUIREMENT_PRIMGROUP
Prim Group: ad-hoc primitive group the target needs to belong to).
Represents a material defined within a style sheet.
Definition: STY_Material.h:24
Defines a data binding for the script argument.
Definition: STY_Binding.h:26
STY_StyleSheetLoadMode
Definition: STY_Types.h:63
Represents a style sheet entry that contains a target and overrides.
Definition: STY_Style.h:28
#define STY_API
Definition: STY_API.h:10
STY_StyleSheetFlags
Flags that may be set on stylesheets.
Definition: STY_Types.h:70
Represents a data source for the override script input argument binding.
Contains a map of category names to override categories.
STY_API const UT_StringHolder STY_OVERRIDE_MAT
Style sheet categories.
Describes the way in which a single property override value is calculated.
Definition: STY_Override.h:25
Defines a script that computes an override value.
STY_API const UT_StringHolder STY_REQUIREMENT_OBJNAME
Object name: the name of the geometry object.
UT_SharedPtr< const STY_Constant > STY_ConstantHandle
Definition: STY_Types.h:90
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
STY_API const UT_StringHolder STY_REQUIREMENT_PATH
GLsizei GLsizei GLchar * source
Definition: glcorearb.h:803
STY_API const UT_StringHolder STY_REQUIREMENT_NAME
STY_API const UT_StringHolder STY_OVERRIDE_SURFACE_PARMS
STY_API const UT_StringHolder STY_REQUIREMENT_SHAPE
Shape: shape, eg, the name of the agent's shape.
STY_API const UT_StringHolder STY_OVERRIDE_MAT_PARMS
STY_API const UT_StringHolder STY_OVERRIDE_MAT_PROPERTIES
STY_API const UT_StringHolder STY_OVERRIDE_PROPERTIES
STY_API const UT_StringHolder STY_REQUIREMENT_OBJBUNDLE
Object bundle: a bundle that tests the geometry object for membership.
STY_API const UT_StringHolder STY_REQUIREMENT_OBJCATEGORY
Object tag: a tag expression tested against the geometry object tags.
STY_API const UT_StringHolder STY_REQUIREMENT_VERTEXGROUP
Vertex Group: eg, ad-hoc vertex group the target needs to belong to).
STY_StyleFlags
Flags that may be set on styles.
Definition: STY_Types.h:78
UT_OptionEntry()
STY_API const UT_StringHolder STY_REQUIREMENT_POINTGROUP
Point Group: ad-hoc point group the target needs to belong to).
STY_API const UT_StringHolder STY_OVERRIDE_DISPLACE_PARMS