Files
bullet3/Extras/FCollada/FUtils/FUDaeEnum.cpp
2006-05-25 19:18:29 +00:00

229 lines
7.8 KiB
C++

/*
Copyright (C) 2005-2006 Feeling Software Inc.
MIT License: http://www.opensource.org/licenses/mit-license.php
*/
/*
Based on the FS Import classes:
Copyright (C) 2005-2006 Feeling Software Inc
Copyright (C) 2005-2006 Autodesk Media Entertainment
MIT License: http://www.opensource.org/licenses/mit-license.php
*/
#include "StdAfx.h"
#include "FUtils/FUDaeEnum.h"
#include "FUtils/FUDaeSyntax.h"
namespace FUDaeInterpolation
{
Interpolation FromString(const string& value)
{
if (value == DAE_NONE_INTERPOLATION) return STEP;
else if (value == DAE_STEP_INTERPOLATION) return STEP;
else if (value == DAE_LINEAR_INTERPOLATION) return LINEAR;
else if (value == DAE_BEZIER_INTERPOLATION) return BEZIER;
else return UNKNOWN;
}
const char* ToString(const Interpolation& value)
{
switch (value)
{
case STEP: return DAE_STEP_INTERPOLATION;
case LINEAR: return DAE_LINEAR_INTERPOLATION;
case BEZIER: return DAE_BEZIER_INTERPOLATION;
case UNKNOWN:
default: return DAEERR_UNKNOWN_ELEMENT;
}
}
};
namespace FUDaeFunction
{
Function FromString(const char* value)
{
if (IsEquivalent(value, DAE_CONSTANT_FUNCTION)) return CONSTANT;
else if (IsEquivalent(value, DAE_LINEAR_FUNCTION)) return LINEAR;
else if (IsEquivalent(value, DAE_QUADRATIC_FUNCTION)) return QUADRATIC;
else return UNKNOWN;
}
};
namespace FUDaeTextureChannel
{
Channel FromString(const string& value)
{
if (value == DAE_AMBIENT_TEXTURE_CHANNEL) return AMBIENT;
else if (value == DAE_BUMP_TEXTURE_CHANNEL) return BUMP;
else if (value == DAE_DIFFUSE_TEXTURE_CHANNEL) return DIFFUSE;
else if (value == DAE_DISPLACEMENT_TEXTURE_CHANNEL) return DISPLACEMENT;
else if (value == DAE_EMISSION_TEXTURE_CHANNEL) return EMISSION;
else if (value == DAE_FILTER_TEXTURE_CHANNEL) return FILTER;
else if (value == DAE_OPACITY_TEXTURE_CHANNEL) return OPACITY;
else if (value == DAE_REFLECTION_TEXTURE_CHANNEL) return REFLECTION;
else if (value == DAE_REFRACTION_TEXTURE_CHANNEL) return REFRACTION;
else if (value == DAE_SHININESS_TEXTURE_CHANNEL) return SHININESS;
else if (value == DAE_SPECULAR_TEXTURE_CHANNEL) return SPECULAR;
else if (value == DAE_SPECULARLEVEL_TEXTURE_CHANNEL) return SPECULAR_LEVEL;
else if (value == DAE_TRANSPARENT_TEXTURE_CHANNEL) return TRANSPARENT;
else return UNKNOWN;
}
};
namespace FUDaeMorphMethod
{
Method FromString(const char* value)
{
if (IsEquivalent(value, DAE_NORMALIZED_MORPH_METHOD)) return NORMALIZED;
else if (IsEquivalent(value, DAE_RELATIVE_MORPH_METHOD)) return RELATIVE;
else return DEFAULT;
}
const char* ToString(Method method)
{
switch (method)
{
case NORMALIZED: return DAE_NORMALIZED_MORPH_METHOD;
case RELATIVE: return DAE_RELATIVE_MORPH_METHOD;
case UNKNOWN:
default: return DAEERR_UNKNOWN_MORPH_METHOD;
}
}
};
namespace FUDaeInfinity
{
Infinity FromString(const char* value)
{
if (IsEquivalent(value, DAEMAYA_CONSTANT_INFINITY)) return CONSTANT;
else if (IsEquivalent(value, DAEMAYA_LINEAR_INFINITY)) return LINEAR;
else if (IsEquivalent(value, DAEMAYA_CYCLE_INFINITY)) return CYCLE;
else if (IsEquivalent(value, DAEMAYA_CYCLE_RELATIVE_INFINITY)) return CYCLE_RELATIVE;
else if (IsEquivalent(value, DAEMAYA_OSCILLATE_INFINITY)) return OSCILLATE;
else return DEFAULT;
}
const char* ToString(Infinity type)
{
switch (type)
{
case CONSTANT: return DAEMAYA_CONSTANT_INFINITY;
case LINEAR: return DAEMAYA_LINEAR_INFINITY;
case CYCLE: return DAEMAYA_CYCLE_INFINITY;
case CYCLE_RELATIVE: return DAEMAYA_CYCLE_RELATIVE_INFINITY;
case OSCILLATE: return DAEMAYA_OSCILLATE_INFINITY;
default: return DAEMAYA_CONSTANT_INFINITY;
}
}
};
namespace FUDaeBlendMode
{
Mode FromString(const char* value)
{
if (IsEquivalent(value, DAEMAYA_NONE_BLENDMODE)) return NONE;
else if (IsEquivalent(value, DAEMAYA_OVER_BLENDMODE)) return OVER;
else if (IsEquivalent(value, DAEMAYA_IN_BLENDMODE)) return IN;
else if (IsEquivalent(value, DAEMAYA_OUT_BLENDMODE)) return OUT;
else if (IsEquivalent(value, DAEMAYA_ADD_BLENDMODE)) return ADD;
else if (IsEquivalent(value, DAEMAYA_SUBSTRACT_BLENDMODE)) return SUBSTRACT;
else if (IsEquivalent(value, DAEMAYA_MULTIPLY_BLENDMODE)) return MULTIPLY;
else if (IsEquivalent(value, DAEMAYA_DIFFERENCE_BLENDMODE)) return DIFFERENCE;
else if (IsEquivalent(value, DAEMAYA_LIGHTEN_BLENDMODE)) return LIGHTEN;
else if (IsEquivalent(value, DAEMAYA_DARKEN_BLENDMODE)) return DARKEN;
else if (IsEquivalent(value, DAEMAYA_SATURATE_BLENDMODE)) return SATURATE;
else if (IsEquivalent(value, DAEMAYA_DESATURATE_BLENDMODE)) return DESATURATE;
else if (IsEquivalent(value, DAEMAYA_ILLUMINATE_BLENDMODE)) return ILLUMINATE;
else return UNKNOWN;
}
const char* ToString(Mode mode)
{
switch (mode)
{
case NONE: return DAEMAYA_NONE_BLENDMODE;
case OVER: return DAEMAYA_OVER_BLENDMODE;
case IN: return DAEMAYA_IN_BLENDMODE;
case OUT: return DAEMAYA_OUT_BLENDMODE;
case ADD: return DAEMAYA_ADD_BLENDMODE;
case SUBSTRACT: return DAEMAYA_SUBSTRACT_BLENDMODE;
case MULTIPLY: return DAEMAYA_MULTIPLY_BLENDMODE;
case DIFFERENCE: return DAEMAYA_DIFFERENCE_BLENDMODE;
case LIGHTEN: return DAEMAYA_LIGHTEN_BLENDMODE;
case DARKEN: return DAEMAYA_DARKEN_BLENDMODE;
case SATURATE: return DAEMAYA_SATURATE_BLENDMODE;
case DESATURATE: return DAEMAYA_DESATURATE_BLENDMODE;
case ILLUMINATE: return DAEMAYA_ILLUMINATE_BLENDMODE;
default: return DAEMAYA_NONE_BLENDMODE;
}
}
}
namespace FUDaeGeometryInput
{
Semantic FromString(const char* value)
{
if (IsEquivalent(value, DAE_POSITION_INPUT)) return POSITION;
else if (IsEquivalent(value, DAE_VERTEX_INPUT)) return VERTEX;
else if (IsEquivalent(value, DAE_NORMAL_INPUT)) return NORMAL;
else if (IsEquivalent(value, DAE_GEOTANGENT_INPUT)) return GEOTANGENT;
else if (IsEquivalent(value, DAE_GEOBINORMAL_INPUT)) return GEOBINORMAL;
else if (IsEquivalent(value, DAE_TEXCOORD_INPUT)) return TEXCOORD;
else if (IsEquivalent(value, DAE_TEXTANGENT_INPUT)) return TEXTANGENT;
else if (IsEquivalent(value, DAE_TEXBINORMAL_INPUT)) return TEXBINORMAL;
else if (IsEquivalent(value, DAE_MAPPING_INPUT)) return UV;
else if (IsEquivalent(value, DAE_COLOR_INPUT)) return COLOR;
else if (IsEquivalent(value, DAEMAYA_EXTRA_INPUT)) return EXTRA;
else return UNKNOWN;
}
const char* ToString(Semantic semantic)
{
switch(semantic)
{
case POSITION: return DAE_POSITION_INPUT;
case VERTEX: return DAE_VERTEX_INPUT;
case NORMAL: return DAE_NORMAL_INPUT;
case GEOTANGENT: return DAE_GEOTANGENT_INPUT;
case GEOBINORMAL: return DAE_GEOBINORMAL_INPUT;
case TEXCOORD: return DAE_TEXCOORD_INPUT;
case TEXTANGENT: return DAE_TEXTANGENT_INPUT;
case TEXBINORMAL: return DAE_TEXBINORMAL_INPUT;
case UV: return DAE_MAPPING_INPUT;
case COLOR: return DAE_COLOR_INPUT;
case EXTRA: return DAEMAYA_EXTRA_INPUT;
case UNKNOWN:
default: return DAEERR_UNKNOWN_INPUT;
}
}
}
namespace FUDaeProfileType
{
Type FromString(const char* value)
{
if (IsEquivalent(value, DAE_FX_PROFILE_COMMON_ELEMENT)) return COMMON;
else if (IsEquivalent(value, DAE_FX_PROFILE_CG_ELEMENT)) return CG;
else if (IsEquivalent(value, DAE_FX_PROFILE_HLSL_ELEMENT)) return HLSL;
else if (IsEquivalent(value, DAE_FX_PROFILE_GLSL_ELEMENT)) return GLSL;
else if (IsEquivalent(value, DAE_FX_PROFILE_GLES_ELEMENT)) return GLES;
else return UNKNOWN;
}
const char* ToString(Type type)
{
switch(type)
{
case COMMON: return DAE_FX_PROFILE_COMMON_ELEMENT;
case CG: return DAE_FX_PROFILE_CG_ELEMENT;
case HLSL: return DAE_FX_PROFILE_HLSL_ELEMENT;
case GLSL: return DAE_FX_PROFILE_GLSL_ELEMENT;
case GLES: return DAE_FX_PROFILE_GLES_ELEMENT;
case UNKNOWN:
default: return DAEERR_UNKNOWN_INPUT;
}
}
}