25#ifndef ODTRVISDEVICEDEFINITIONS
26#define ODTRVISDEVICEDEFINITIONS
34#if defined(_MSC_VER) && (_MSC_VER >= 1200)
35#define OD_FORCEINLINE __forceinline
36#elif defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
37#define OD_FORCEINLINE inline __attribute__((always_inline))
38#elif defined(__APPLE__) && !defined(__GNUC__)
39#define OD_FORCEINLINE inline __attribute__((always_inline))
41#define OD_FORCEINLINE inline
45#if (__cplusplus > 199711L) || (_MSC_VER > 1700)
46#define OD_CPP0X_SUPPORTED
47#if defined(_MSC_VER) && (_MSC_VER < 1900)
48#define OD_CPP0X_PARTIAL_SUPPORT
53#if defined(OD_CPP0X_SUPPORTED) && !defined(OD_CPP0X_PARTIAL_SUPPORT)
54#define OD_CONSTEXPR_FUNC constexpr
55#define OD_CONSTEXPR constexpr
57#define OD_CONSTEXPR_FUNC OD_FORCEINLINE
125#define OdTrVisPtrToId(ptr) ((OdTrVisId)((OdIntPtr)ptr))
126#define OdTrVisIdToPtr(ptrType, id) ((ptrType*)(OdIntPtr)(id))
172 {
return (
r == sec.
r) && (
g == sec.
g) && (
b == sec.
b) && (
a == sec.
a); }
174 {
return (
r != sec.
r) || (
g != sec.
g) || (
b != sec.
b) || (
a != sec.
a); }
176 r = _r;
g = _g;
b = _b;
a = _a;
return *
this; }
185 void asFlt(
float &_r,
float &_g,
float &_b,
float &_a)
const { _r = float(
r) / 255; _g = float(
g) / 255; _b = float(
b) / 255; _a = float(
a) / 255; }
192 case kRGBA: *
this = clr;
break;
case kBGRA:
r = clr.
b;
g = clr.
g;
b = clr.
r;
a = clr.
a;
break;
199 case kRGBA: clr = *
this;
break;
case kBGRA: clr.
r =
b; clr.
g =
g; clr.
b =
r; clr.
a =
a;
break;
235#define OD_TRVIS_OPAQUE(color) ((color) | 0xFF000000)
236#define OD_TRVIS_TRANSPARENT(color) ((color) & 0x00FFFFFF)
237#define OD_TRVIS_SETALPHA(color, alpha) (OD_TRVIS_TRANSPARENT(color) | (ODCOLORREF(alpha) << 24))
243 const float dif = a - b;
244 return (dif <
tol) && (dif > -
tol);
248 return !(a >
tol) && !(a < -
tol);
255template <
typename Type>
257{
if (val < valMin) val = valMin;
else if (val > valMax) val = valMax;
259template <
typename Type>
261{
if (val < valMin)
return valMin;
else if (val > valMax)
return valMax;
265template <
typename Type>
269template <
typename Type>
275template <
typename DataType,
long numEntries>
283 inline DataType *
flip(DataType *pValue,
long n,
size_t stride)
const
285 inline DataType *
flip(DataType *pValue,
long n)
const
290 {
for (
long nEntry = 0; nEntry < numEntries; nEntry++)
296 {
for (
long nEntry = 0; nEntry < numEntries; nEntry++)
297 { DataType &pLVal = *
flip(pValue, nEntry);
305 {
for (
long nEntry = 0; nEntry < numEntries; nEntry++)
306 { DataType &pLVal = *
flip(pValue, nEntry);
308 pLVal = *
flip(
const_cast<DataType*
>(pInitValue), nEntry, stride2);
312 {
for (
long nEntry = 0; nEntry < numEntries; nEntry++)
323 OdRxOverruleIterator* getOverrule(
OverrulingType t)
const {
return 0; }
const OdGsMarker kNullSubentIndex
#define SETBIT_0(flags, bit)
#define GETBIT(flags, bit)
#define SETBIT_1(flags, bit)
const OdTrVisId kTrVisMainOverlayId
const OdTrVisId kTrVisNegativeId
const OdTrVisArrayId kTrVisNegativeArrayId
bool isValidMarker(OdTrVisGsMarker marker)
const OdTrVisId kTrVisNullId
OdArray< OdTrVisSectionPlane, OdMemoryAllocator< OdTrVisSectionPlane > > OdTrVisSectionPlaneArray
OdTrVisId OdTrVisVisualStyleId
const void * OdTrVisStateBranchPtr
OD_FORCEINLINE bool OdTrVisFPZero(float a, float tol=1.e-8f)
OD_FORCEINLINE Type & OdTrVisClamp(Type &val, Type valMin, Type valMax)
OdTrVisId OdTrVisOverlayId
OdTrVisId OdTrVisViewportId
OD_FORCEINLINE bool OdTrVisFPEqual(float a, float b, float tol=1.e-8f)
OD_FORCEINLINE bool isNullTrVisId(OdTrVisId id)
OdTrVisId OdTrVisProgramId
OdTrVisId OdTrVisMaterialId
@ kTrVisNumStateBranchTypes
@ kTrVisHighlightingBranch
OdTrVisId OdTrVisExtensionId
OdArray< OdTrVisGsMarker, OdMemoryAllocator< OdTrVisGsMarker > > OdTrVisGsMarkerArray
const OdTrVisGsMarker kTrVisNullGsMarker
OdTrVisId OdTrVisStateBranchId
OD_FORCEINLINE bool isMainTrVisOverlayId(OdTrVisId id)
OdTrVisId OdTrVisDisplayId
OdTrVisId OdTrVisTextureId
OD_FORCEINLINE bool isValidTrVisId(OdTrVisId id)
OdTrVisId OdTrVisMetafileId
OD_FORCEINLINE bool isValidTrVisArrayId(OdTrVisArrayId id)
OdArray< float, OdMemoryAllocator< float > > OdFloatArray
OdTrVisMultiStateSaver(DataType *pValue, const DataType &initValue, size_t stride=sizeof(DataType))
DataType * flip(DataType *pValue, long n, size_t stride) const
OdTrVisMultiStateSaver(DataType *pValue, const DataType *pInitValue, size_t stride=sizeof(DataType), size_t stride2=sizeof(DataType))
OdTrVisMultiStateSaver(DataType *pValue, size_t stride=sizeof(DataType))
DataType m_oldValues[numEntries]
~OdTrVisMultiStateSaver()
DataType * flip(DataType *pValue, long n) const
GLfloat GLfloat GLfloat alpha
GLint GLenum GLboolean GLsizei stride
void getRep(OdTrVisColorRGBA &clr, ColorRep rep, OdUInt8 alpha=255) const
bool operator!=(const OdTrVisColorRGBA &sec) const
OdTrVisColorRGBA & set(OdUInt8 _r, OdUInt8 _g, OdUInt8 _b, OdUInt8 _a)
const OdUInt8 * asArray() const
void setFlt(float _r, float _g, float _b, float _a)
ODCOLORREF asCRef() const
OdTrVisColorRGBA & set_r(OdUInt8 _r)
OdTrVisColorRGBA & set_a(OdUInt8 _a)
OdTrVisColorRGBA & setCRef(ODCOLORREF color)
OdTrVisColorRGBA & set_b(OdUInt8 _b)
bool operator==(const OdTrVisColorRGBA &sec) const
OdTrVisColorRGBA getRep(ColorRep rep, OdUInt8 alpha=255) const
OdTrVisColorRGBA & set_g(OdUInt8 _g)
void setRep(const OdTrVisColorRGBA &clr, ColorRep rep, OdUInt8 alpha=255)
void asFlt(float &_r, float &_g, float &_b, float &_a) const
OdGeVector3d normal() const
OdGePoint3d position() const
OdTrVisSectionPlane(OdGePoint3d position, OdGeVector3d normal)
void set(OdGePoint3d position, OdGeVector3d normal)
void transformBy(const OdGeMatrix3d &xfm)
bool isSynchronized() const
void resetSyncFlag(OdUInt32 flag)
void setSyncFlag(OdUInt32 flag)
bool isSyncFlagSet(OdUInt32 flag) const
~OdTrVisTemporalDescreasor()
~OdTrVisTemporalIncreasor()