81#ifdef USEREFICCMAXNAMESPACE
146 switch(elemTypeSig) {
148 elemName =
"Curve Set Element";
152 elemName =
"Matrix Element";
156 elemName =
"CLUT Element";
160 elemName =
"Extended CLUT Element";
164 elemName =
"Calculator Element";
168 elemName =
"Tint Array Element";
172 elemName =
"Tone Mapping Element";
176 elemName =
"JabToXYZ Element";
180 elemName =
"XYZToJab Element";
184 elemName =
"Observer Matrix Element";
188 elemName =
"Observer Inverse Matrix Element";
192 elemName =
"Emission CLUT Element";
196 elemName =
"Reflectance CLUT Element";
200 elemName =
"Emission Observer Element";
204 elemName =
"Reflectance Observer Element";
208 elemName =
"BACS Element";
212 elemName =
"EACS Element";
216 char buf[30], str[100];
217 sprintf(str,
"Unknown Element Type (%s)",
icGetSig(buf, elemTypeSig));
233 pFactory = DoPopFactory(
true);
239 if (!theElementCreator.get()) {
245 return theElementCreator.get();
250 CIccMpeFactoryList::iterator i;
253 for (i=factoryStack.begin(); i!=factoryStack.end(); i++) {
254 rv = (*i)->CreateElement(elemTypeSig);
263 CIccMpeFactoryList::iterator i;
265 for (i=factoryStack.begin(); i!=factoryStack.end(); i++) {
266 if ((*i)->GetElementSigName(elemName, elemTypeSig))
275 factoryStack.push_front(pFactory);
280 if (factoryStack.size()>0) {
281 CIccMpeFactoryList::iterator i=factoryStack.begin();
283 factoryStack.pop_front();
289#ifdef USEREFICCMAXNAMESPACE
std::unique_ptr< CIccMpeCreator > CIccMpeCreatorPtr
const icChar * icGetSig(icChar *pBuf, icUInt32Number nSig, bool bGetHexVal)
Class: CIccBasicMpeFactory.
virtual CIccMultiProcessElement * CreateElement(icElemTypeSignature elementSig)
Function: CreateElement(elemTypeSig) Create a element of type elemTypeSig.
virtual bool GetElementSigName(std::string &elemName, icElemTypeSignature elemTypeSig)
Function: GetElementSigName(elemTypeSig) Get display name of elemTypeSig.
Class: CIccMpeCalculator.
IIccMpeFactory * DoPopFactory(bool bAll=false)
void DoPushFactory(IIccMpeFactory *pFactory)
CIccMultiProcessElement * DoCreateElement(icElemTypeSignature elemTypeSig)
static CIccMpeCreatorPtr theElementCreator
bool DoGetElementSigName(std::string &elemName, icElemTypeSignature elemTypeSig)
static CIccMpeCreator * GetInstance()
Function: GetInstance() Private static function to access singleton CiccElementCreator Object.
Class: CIccMpeEmissionCLUT.
Class: CIccMpeEmissionMatrix.
Class: CIccMpeEmissionObserver.
Class: CIccMpeInvEmissionMatrix.
Class: CIccMpeReflectanceCLUT.
Class: CIccMpeReflectanceObserver.
Class: CIccMultiProcessElement.