HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SIM_AttribDefn.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  */
7 
8 #ifndef __SIM_AttribDefn_h__
9 #define __SIM_AttribDefn_h__
10 
11 #include <GEO/GEO_Detail.h>
12 
13 // Density of each point (float)
14 #define SIM_ATT_DENSITY GA_ATTRIB_POINT, "density", 1
15 
16 // Classification of attributes
17 //
18 // * Storage: detail, primitive, point, vertex, edge
19 // - Note that edge attributes are actually stored in the vertex
20 // - If multiple storage is possible, shown from highest precedence to
21 // lowest
22 
23 
24 // Storage: point
25 // Velocity of each point. Can be used to define initial velocity of each
26 // point.
27 #define SIM_ATT_VEL GEO_STD_ATTRIB_VELOCITY, \
28  sizeof(UT_Vector3), GB_ATTRIB_VECTOR
29 // Storage: point
30 // Mass of each point, proportional to point density multiplier, triangle
31 // area surrounding point, and global density.
32 #define SIM_ATT_MASS GEO_STD_ATTRIB_MASS, \
33  sizeof(float), GB_ATTRIB_FLOAT
34 
35 // Storage: primitive
36 // Disable cloth/volume collisions.
37 #define SIM_ATT_NOCLOTHVOLUME \
38  "noclothvolume", \
39  sizeof(int), GB_ATTRIB_INT
40 // Same as above, but allow float value - mostly just for convenience,
41 // since the Paint SOP requires floats.
42 #define SIM_ATT_NOCLOTHVOLUME_F \
43  "noclothvolume", \
44  sizeof(float), GB_ATTRIB_FLOAT
45 
46 #define SIM_ATT_NOPOINTVOLUME GA_ATTRIB_POINT, "nopointvolume", 1
47 #define SIM_ATT_NOEDGEVOLUME GA_ATTRIB_POINT, "noedgevolume", 1
48 
49 #define SIM_ATT_SURFACEREPTYPE \
50  "surfacereptype", \
51  sizeof(int), GB_ATTRIB_INT
52 
53 // Used by colliders to help mark points that are fused together during
54 // simulation. It defines the "simulation point id" associated with a
55 // point, and id comparison can be used to detect fused points.
56 #define SIM_ATT_FUSEMAPPING "simfusemap",sizeof(int), GB_ATTRIB_INT
57 
58 #endif