00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __PRM_SpareData__
00020 #define __PRM_SpareData__
00021
00022 #include "PRM_API.h"
00023 #include <SYS/SYS_Types.h>
00024 #include <UT/UT_Color.h>
00025 #include <UT/UT_SymbolTable.h>
00026 #include <CH/CH_ExprLanguage.h>
00027
00028 class UT_BitArray;
00029 class PRM_Parm;
00030
00031 typedef int (*PRM_SpareCallback)(const char *token, const char *value);
00032 typedef int (*PRM_SpareCallbackWithData)(UT_Thing &thing,
00033 const char *token, void *data);
00034
00035 class PRM_API PRM_SpareData {
00036 public:
00037
00038
00039
00040
00041
00042
00043 explicit PRM_SpareData(const char *first_token, ...);
00044 PRM_SpareData();
00045 ~PRM_SpareData();
00046
00047 uint entries() const;
00048
00049 void clear();
00050 void mergeFrom(const PRM_SpareData &ref);
00051 void copyFrom(const PRM_SpareData &ref)
00052 { clear(); mergeFrom(ref); }
00053
00054
00055 const char *getValue(const char *token) const;
00056
00057
00058
00059 void traverseConst(PRM_SpareCallback f) const;
00060 void traverseConst(PRM_SpareCallbackWithData f, void *data) const;
00061
00062
00063
00064
00065 void addTokenValue(const char *token, const char *value);
00066 void deleteTokenValue(const char *token)
00067 { addTokenValue(token, 0); }
00068
00069
00070
00071 void setCallbackData(const char *str)
00072 { addTokenValue("script_callback", str); }
00073 const char *getCallbackData() const
00074 { return getValue("script_callback"); }
00075
00076 void setCallbackLanguage(CH_ScriptLanguage language);
00077 CH_ScriptLanguage getCallbackLanguage() const;
00078
00079 void setRenderManType(const char *str)
00080 { addTokenValue("script_ritype", str); }
00081 const char *getRenderManType() const
00082 { return getValue("script_ritype"); }
00083
00084 void setOpFilter(const char *str)
00085 { addTokenValue("opfilter", str); }
00086 const char *getOpFilter() const
00087 { return getValue("opfilter"); }
00088
00089 void setOpRelative(const char *str)
00090 { addTokenValue("oprelative", str); }
00091 const char *getOpRelative() const
00092 { return getValue("oprelative"); }
00093
00094 static const char * getUnquotedStateToken()
00095 { return "script_unquoted"; }
00096 void setUnquotedState()
00097 { addTokenValue(getUnquotedStateToken(), "1"); }
00098 bool getUnquotedState() const
00099 { return getValue(getUnquotedStateToken()) != 0; }
00100
00101 void setMultiStartOffset(int value);
00102 int getMultiStartOffset() const;
00103
00104 void setVisibleTabs(const UT_BitArray &values);
00105 void getVisibleTabs(UT_BitArray &values) const;
00106 bool getVisibleTab(int tabidx) const;
00107
00108 const char *getEmbeddedPathParm() const
00109 { return getValue("embed_pathparm"); }
00110 void setEmbeddedPathParm(const char *value)
00111 { addTokenValue("embed_pathparm", value); }
00112
00113 static const char * getRampBasisDefaultToken()
00114 { return "rampbasisdefault"; }
00115 void setRampBasisDefault(const char *value)
00116 { addTokenValue(getRampBasisDefaultToken(),value); }
00117 const char * getRampBasisDefault() const
00118 { return getValue(getRampBasisDefaultToken()); }
00119
00120 static const char * getRampShowControlsDefaultToken()
00121 { return "rampshowcontrolsdefault"; }
00122 void setRampShowControlsDefault(bool value)
00123 {
00124 addTokenValue(getRampShowControlsDefaultToken(),
00125 value ? "1" : "0");
00126 }
00127 bool getRampShowControlsDefault() const
00128 {
00129 const char *n, *v;
00130 n = getRampShowControlsDefaultToken();
00131 v = getValue(n);
00132 if (!v)
00133 return true;
00134 else
00135 return *v != '0';
00136 }
00137
00138 static const char * getRampColorTypeToken()
00139 { return "rampcolortype"; }
00140 static const char * getColorTypeValueToken(UT_ColorType color_type);
00141 void setRampColorType(UT_ColorType color_type);
00142 UT_ColorType getRampColorType() const;
00143
00144 static const char * getRampBasisVarToken() { return "rampbasis_var"; }
00145 static const char * getRampKeysVarToken() { return "rampkeys_var"; }
00146 static const char * getRampValuesVarToken() { return "rampvalues_var"; }
00147
00148 void setRampBasisVar(const char *value)
00149 { addTokenValue(getRampBasisVarToken(), value); }
00150 const char * getRampBasisVar() const
00151 { return getValue(getRampBasisVarToken()); }
00152 void setRampKeysVar(const char *value)
00153 { addTokenValue(getRampKeysVarToken(), value); }
00154 const char * getRampKeysVar() const
00155 { return getValue(getRampKeysVarToken()); }
00156 void setRampValuesVar(const char *value)
00157 { addTokenValue(getRampValuesVarToken(), value); }
00158 const char * getRampValuesVar() const
00159 { return getValue(getRampValuesVarToken()); }
00160
00161 static const char * getColorRampDefaultToken() {return "rampcolordefault";}
00162 const char * getColorRampDefaultValue() const
00163 { return getValue(getColorRampDefaultToken()); }
00164 static const char * getFloatRampDefaultToken() {return "rampfloatdefault";}
00165 const char * getFloatRampDefaultValue() const
00166 { return getValue(getFloatRampDefaultToken()); }
00167 void setRampDefaultFromParm(const PRM_Parm &ramp_parm);
00168 void getRampDefaultToParm(PRM_Parm &ramp_parm) const;
00169
00170 void setXCFMode(const char *value)
00171 { return addTokenValue("xcfmode", value); }
00172 const char *getXCFMode() const
00173 { return getValue("xcfmode"); }
00174
00175 static const char *getXCFModeFloatToken() { return "float"; }
00176
00177 int64 getMemUsage() const;
00178
00179 static const char *getOpFilterKeyFromName(const char *name);
00180 static const char *getOpFilterKeyFromLabel(const char *name);
00181 static const char *getOpFilterNameFromKey(const char *key);
00182 static const char *getOpFilterLabelFromKey(const char *key);
00183
00184
00185
00186 static PRM_SpareData objNetRef;
00187 static PRM_SpareData chNetRef;
00188 static PRM_SpareData ropNetRef;
00189
00190 static PRM_SpareData objPath;
00191 static PRM_SpareData objGeometryPath;
00192 static PRM_SpareData objLightPath;
00193 static PRM_SpareData objBonePath;
00194 static PRM_SpareData objMusclePath;
00195 static PRM_SpareData objCameraPath;
00196 static PRM_SpareData dopPath;
00197 static PRM_SpareData sopPath;
00198 static PRM_SpareData popPath;
00199 static PRM_SpareData ropPath;
00200 static PRM_SpareData cop2Path;
00201 static PRM_SpareData chopPath;
00202 static PRM_SpareData shopPath;
00203 static PRM_SpareData shopProperties;
00204 static PRM_SpareData shopMaterial;
00205 static PRM_SpareData shopSurface;
00206 static PRM_SpareData shopDisplacement;
00207 static PRM_SpareData shopSurfaceShadow;
00208 static PRM_SpareData shopBackground;
00209 static PRM_SpareData shopGeometry;
00210 static PRM_SpareData shopAtmosphere;
00211 static PRM_SpareData shopPhoton;
00212 static PRM_SpareData shopPhotonVolume;
00213 static PRM_SpareData shopContour;
00214 static PRM_SpareData shopLight;
00215 static PRM_SpareData shopEmitter;
00216 static PRM_SpareData shopLightShadow;
00217 static PRM_SpareData shopLens;
00218 static PRM_SpareData shopOutput;
00219 static PRM_SpareData shopContourStore;
00220 static PRM_SpareData shopContourContrast;
00221 static PRM_SpareData shopImage3d;
00222 static PRM_SpareData shopCVEX;
00223 static PRM_SpareData shopCoShader;
00224
00225 static PRM_SpareData autoScope;
00226
00227 static PRM_SpareData multiStartOffsetZero;
00228 static PRM_SpareData multiStartOffsetOne;
00229
00230 static PRM_SpareData unitsLength;
00231 static PRM_SpareData unitsMass;
00232 static PRM_SpareData unitsTime;
00233 static PRM_SpareData unitsPerTime;
00234 static PRM_SpareData unitsVelocity;
00235 static PRM_SpareData unitsAngVelocity;
00236 static PRM_SpareData unitsAcceleration;
00237 static PRM_SpareData unitsAngAcceleration;
00238 static PRM_SpareData unitsForce;
00239 static PRM_SpareData unitsImpulse;
00240 static PRM_SpareData unitsTorque;
00241 static PRM_SpareData unitsDrag;
00242 static PRM_SpareData unitsAngDrag;
00243 static PRM_SpareData unitsPressure;
00244 static PRM_SpareData unitsSpringConstant;
00245 static PRM_SpareData unitsLinearDensity;
00246 static PRM_SpareData unitsAreaDensity;
00247 static PRM_SpareData unitsDensity;
00248 static PRM_SpareData unitsNone;
00249
00250 static PRM_SpareData rampBasisDefault;
00251 static PRM_SpareData rampKeysDefault;
00252 static PRM_SpareData rampValuesDefault;
00253
00254 static const char * getFileChooserModeToken() {return "filechooser_mode";}
00255 static const char * getFileChooserModeValRead() { return "read"; }
00256 static const char * getFileChooserModeValWrite() { return "write"; }
00257 static const char * getFileChooserModeValReadAndWrite()
00258 { return "read_and_write"; }
00259 static PRM_SpareData fileChooserModeRead;
00260 static PRM_SpareData fileChooserModeWrite;
00261 static PRM_SpareData fileChooserModeReadAndWrite;
00262
00263 static PRM_SpareData stringFloatXCF;
00264
00265 private:
00266 PRM_SpareData(const PRM_SpareData &);
00267 PRM_SpareData &operator=(const PRM_SpareData &);
00268
00269 private:
00270 UT_SymbolTable myTokens;
00271 };
00272
00273 #endif