00001 /* 00002 * PROPRIETARY INFORMATION. This software is proprietary to 00003 * Side Effects Software Inc., and is not to be reproduced, 00004 * transmitted, or disclosed in any way without written permission. 00005 * 00006 * Produced by: 00007 * George ElKoura 00008 * Side Effects Software, Inc. 00009 * 477 Richmond Street West 00010 * Toronto, Ontario 00011 * Canada M5V 3E7 00012 * 416-504-9876 00013 * 00014 * NAME: GB_AttributeDefines.h (C++) 00015 * 00016 * COMMENTS: 00017 * 00018 */ 00019 #ifndef __GB_AttributeDefines_h__ 00020 #define __GB_AttributeDefines_h__ 00021 00022 /// This enum defines the types of storage for attributes in GA_Attribute 00023 /// @warning 00024 /// Do not change the numeric values since these are saved in binary 00025 /// geometry files. 00026 enum GB_AttribType { 00027 /// Attribute storage is 32-bit floating point values 00028 GB_ATTRIB_FLOAT = 0, 00029 /// Attribute storage is 32-bit integer values 00030 GB_ATTRIB_INT = 1, 00031 /// @deprecated Please use GA_ATTRIB_INDEX instead 00032 GB_ATTRIB_STRING = 2, 00033 00034 /// Mixed attributes are not saved/loaded in .bgeo files. They 00035 /// represent blind data that the geometry library doesn't know 00036 /// anything about. 00037 GB_ATTRIB_MIXED = 3, 00038 00039 /// A GB_ATTRIB_INDEX attribute maintains a separate table of string 00040 /// values. These string values have a unique integer associated with 00041 /// them. The attribute stores a 32-bit integer which refers to a 00042 /// string in the table on the GB_Attribute. The following methods are 00043 /// used to access the table: 00044 /// - GB_Attribute::saveIndexValues() 00045 /// - GB_Attribute::loadIndexValues() 00046 /// - GB_Attribute::addIndex() 00047 /// - GB_Attribute::renameIndex() 00048 /// - GB_Attribute::destroyIndex() 00049 /// - GB_Attribute::clearIndex() 00050 /// - GB_Attribute::removeRedundantIndex() 00051 /// - GB_Attribute::getIndexSize() 00052 /// - GB_Attribute::getIndex() 00053 GB_ATTRIB_INDEX = 4, // Index of strings 00054 00055 /// Same as float, but is always has a tuple size of 3 floats. 00056 /// In addition, when the geometry is transformed, any vector 00057 /// attributes are transformed as a @b normal. 00058 GB_ATTRIB_VECTOR = 5, 00059 }; 00060 00061 /// Extended type information for attributes. 00062 enum GB_AttribTypeInfo { 00063 // No extra type information 00064 GB_ATTRIB_INFO_NONE = 0, // no info available 00065 /// Floating values represent index/value pairs for capture weights 00066 GB_ATTRIB_INFO_INDEX_PAIR = 1, 00067 00068 /// Sentinal 00069 GB_ATTRIB_NUM_INFO 00070 }; 00071 00072 #define GB_ATTRIB_ALIGN_SIZE sizeof(void *) 00073 00074 enum GB_AttributeStorage { 00075 GB_STORAGE_UNDEF, 00076 00077 GB_STORAGE_INT, 00078 GB_STORAGE_INT8, 00079 GB_STORAGE_INT16, 00080 GB_STORAGE_INT32, 00081 GB_STORAGE_INT64, 00082 00083 GB_STORAGE_FPREAL, 00084 GB_STORAGE_FPREAL16, 00085 GB_STORAGE_FPREAL32, 00086 GB_STORAGE_FPREAL64, 00087 00088 GB_STORAGE_STRING, 00089 GB_STORAGE_OPAQUE, 00090 GB_STORAGE_VOID 00091 }; 00092 00093 00094 #endif
1.5.9