00001 /*======================================================================= 00002 * Copyright 1991-1996, Silicon Graphics, Inc. 00003 * ALL RIGHTS RESERVED 00004 * 00005 * UNPUBLISHED -- Rights reserved under the copyright laws of the United 00006 * States. Use of a copyright notice is precautionary only and does not 00007 * imply publication or disclosure. 00008 * 00009 * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND: 00010 * Use, duplication or disclosure by the Government is subject to restrictions 00011 * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights 00012 * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or 00013 * in similar or successor clauses in the FAR, or the DOD or NASA FAR 00014 * Supplement. Contractor/manufacturer is Silicon Graphics, Inc., 00015 * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311. 00016 * 00017 * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY 00018 * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION, 00019 * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY 00020 * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON 00021 * GRAPHICS, INC. 00022 **=======================================================================*/ 00023 /*======================================================================= 00024 ** Author : Paul S. Strauss (MMM yyyy) 00025 **=======================================================================*/ 00026 /*======================================================================= 00027 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), *** 00028 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. *** 00029 *** *** 00030 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS *** 00031 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR *** 00032 *** WRITTEN AUTHORIZATION OF FEI S.A.S. *** 00033 *** *** 00034 *** RESTRICTED RIGHTS LEGEND *** 00035 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS *** 00036 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN *** 00037 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT *** 00038 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN *** 00039 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. *** 00040 *** *** 00041 *** COPYRIGHT (C) 1996-2014 BY FEI S.A.S, *** 00042 *** BORDEAUX, FRANCE *** 00043 *** ALL RIGHTS RESERVED *** 00044 **=======================================================================*/ 00045 /*======================================================================= 00046 ** Modified by : VSG (MMM YYYY) 00047 **=======================================================================*/ 00048 00049 00050 #ifndef _SO_MF_COLOR_ 00051 #define _SO_MF_COLOR_ 00052 00053 #include <Inventor/fields/SoSubField.h> 00054 #include <Inventor/SbColor.h> 00055 #include <Inventor/fields/SoMFVec3f.h> 00056 00058 // 00059 // SoMFColor subclass of SoMField. 00060 // 00062 00098 class SoMFColor : public SoMField { 00099 // Use standard field stuff 00100 SO_MFIELD_HEADER(SoMFColor, SbColor, const SbColor &); 00101 00102 SO_MFIELD_SETVALUESPOINTER_HEADER(float); 00103 SO_FIELD_SUPPORT_MEMOBJ(); 00104 public: 00105 // 00106 // Additional convenience functions 00107 // 00108 00124 void setValues(int start, int num, const float rgb[][3]); 00131 void setHSVValues(int start, int num, const float hsv[][3]); 00132 00141 void setValue(const SbVec3f &vec); 00150 void setValue(float r, float g, float b); 00159 void setValue(const float rgb[3]); 00160 00169 void setHSVValue(float h, float s, float v); 00178 void setHSVValue(const float hsv[3]); 00179 00187 void set1Value(int index, const SbVec3f &vec); 00195 void set1Value(int index, float r, float g, float b); 00203 void set1Value(int index, const float rgb[3]); 00204 00212 void set1HSVValue(int index, float h, float s, float v); 00220 void set1HSVValue(int index, const float hsv[3]); 00221 00222 private: 00223 static void initClass(); 00224 static void exitClass(); 00225 virtual void writeBinaryValues(SoOutput*, int , int ) const; 00226 virtual SbBool readBinaryValues( SoInput*, int, int ); 00227 00228 private: 00229 virtual void writeBinaryValues(SoOutput *out) const; 00230 virtual SbBool readBinaryValues(SoInput *in, int numToRead); 00231 00233 // 00234 // #unfound setValues(int start, int num, float rgb[][3]) 00235 // #unfound setHSVValues(int start, int num, float hsv[][3]) 00236 // #unfound setValue(SbVec3f & vec) 00237 // #unfound setValue(float red, float green, float blue) 00238 // #unfound setHSVValue(float hue, float saturation, float value) 00239 // #unfound setValue(float rgb[3]) 00240 // #unfound setHSVValue(float hsv[3]) 00241 // #unfound set1Value(index , SbVec3f & vec) 00242 // #unfound set1Value(index , float r, float g, float b) 00243 // #unfound set1HSVValue(index , float h, float s, float v) 00244 // #unfound set1Value(index , float rgb[3]) 00245 // #unfound set1HSVValue(index , float hsv[3]) 00246 // #unfound [](int i) 00247 // #unfound getValues(int start) 00248 // #unfound find(SbColor & targetValue, SbBool addIfNotFound) 00249 // #unfound setValues(int start, int num, SbColor * newValues) 00250 // #unfound set1Value(int index, SbColor & newValue) 00251 // #unfound =(SbColor & newValue) 00252 // #unfound setValue(SbColor & newValue) 00253 // #unfound ==(SoMFColor & f) 00254 // #unfound !=(SoMFColor & f) 00255 // #unfound startEditing() 00256 // #unfound finishEditing() 00257 // #unfound setValuesPointer(int num, SbColor * data) 00258 // #unfound enableDeleteValues() 00259 // #unfound isDeleteValuesEnabled() 00260 // #grouped setHSVValues(int start, int num, float hsv[][3]) 00261 // #grouped setValue(float red, float green, float blue) 00262 // #grouped setHSVValue(float hue, float saturation, float value) 00263 // #grouped setValue(float rgb[3]) 00264 // #grouped setHSVValue(float hsv[3]) 00265 // #grouped set1Value(index , float r, float g, float b) 00266 // #grouped set1HSVValue(index , float h, float s, float v) 00267 // #grouped set1Value(index , float rgb[3]) 00268 // #grouped set1HSVValue(index , float hsv[3]) 00269 // #grouped getTypeId() 00270 // #grouped setValue(SbColor & newValue) 00271 // #grouped !=(SoMFColor & f) 00272 // #grouped finishEditing() 00273 // #grouped isDeleteValuesEnabled() 00274 // 00276 00277 }; 00278 00279 #endif /* _SO_MF_COLOR_ */ 00280 00281