|
ACF $AcfVersion:0$
|
Generic fixed-size color implementation template. More...
#include <TComposedColor.h>
Public Types | |
| typedef imath::TVector< Size > | BaseClass |
| typedef BaseClass::Elements | Elements |
Public Types inherited from imath::TVector< Size, Element > | |
| typedef Element | ElementType |
| typedef Element | Elements[Size] |
Public Types inherited from istd::IChangeable | |
| enum | ChangeFlags { CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING , CF_DELEGATED , CF_NO_UNDO } |
| Data model change notification flags. More... | |
| enum | SupportedOperations { SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 , SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4 } |
| Flags for supported operations. More... | |
| enum | CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT } |
| Control how relationship betweeen objects are interpreted. More... | |
| typedef QMultiMap< QByteArray, QVariant > | ChangeInfoMap |
Public Member Functions | |
| TComposedColor () | |
| TComposedColor (const BaseClass &value) | |
| TComposedColor (const imath::CVarVector &vector) | |
| TComposedColor (const TComposedColor< Size > &color)=default | |
| void | GetRounded (const imath::IDoubleManip &manipulator, TComposedColor< Size > &result) |
| Get color after components value rounding with specified precision. | |
| bool | IsRoundedEqual (const TComposedColor< Size > &color, const imath::IDoubleManip &manipulator) const |
| Check if two values are equal after rounding. | |
| bool | IsSimilar (const TComposedColor< Size > &color, double tolerance=I_BIG_EPSILON) const |
| Allows to compare two colors with tolerance. | |
| bool | IsNormalized () const |
| Check if this color value is normalized. | |
| void | Normalize () |
| Make this color to be normalized. | |
| void | GetNormalized (TComposedColor< Size > &result) const |
| Get normalized color. | |
| TComposedColor< Size > | operator+ (const TComposedColor< Size > &color) const |
| TComposedColor< Size > | operator- (const TComposedColor< Size > &color) const |
| TComposedColor< Size > | operator* (const TComposedColor< Size > &color) const |
| TComposedColor< Size > | operator/ (const TComposedColor< Size > &color) const |
| TComposedColor< Size > | operator* (double value) const |
| TComposedColor< Size > | operator/ (double value) const |
| const TComposedColor< Size > & | operator= (const TComposedColor< Size > &color) |
| const TComposedColor< Size > & | operator= (double colorValue) |
| const TComposedColor< Size > & | operator+= (const TComposedColor< Size > &color) |
| const TComposedColor< Size > & | operator-= (const TComposedColor< Size > &color) |
| const TComposedColor< Size > & | operator*= (const TComposedColor< Size > &color) |
| const TComposedColor< Size > & | operator/= (const TComposedColor< Size > &color) |
| const TComposedColor< Size > & | operator*= (double value) |
| const TComposedColor< Size > & | operator/= (double value) |
| virtual bool | Serialize (iser::IArchive &archive) override |
| Load or store state of this object as a archive stream. | |
Public Member Functions inherited from imath::TVector< Size, Element > | |
| TVector () | |
| Creates an uninitialized vector. | |
| TVector (const TVector< Size, Element > &vector) | |
| Creates a copy of another vector. | |
| TVector (std::initializer_list< Element > values) | |
| Creates a vector from an initializer list. | |
| const Element & | GetElement (int i) const |
| Gets the element at the specified index (read-only). | |
| Element & | GetElementRef (int i) |
| Gets a reference to the element at the specified index (read-write). | |
| void | SetElement (int i, const Element &value) |
| Sets the element at the specified index. | |
| void | SetAllElements (const Element &value) |
| Sets all elements to the same value. | |
| void | Reset () |
| Sets all coordinates to zero. | |
| void | Clear () |
| Sets all coordinates to zero. | |
| const TVector< Size, Element >::Elements & | GetElements () const |
| Get read-only access to internal element container. | |
| TVector< Size, Element >::Elements & | GetElementsRef () |
| Get access to internal element container. | |
| void | Translate (const TVector< Size, Element > &vector) |
| Translates (adds) another vector to this vector. | |
| TVector< Size, Element > | GetTranslated (const TVector< Size, Element > &vector) |
| Returns a new vector that is the translation of this vector. | |
| void | GetTranslated (const TVector< Size, Element > &vector, TVector< Size, Element > &result) |
| Computes the translated vector and stores it in the result parameter. | |
| void | ScaledCumulate (const TVector< Size, Element > &vector, Element scale) |
| Adds a scaled vector to this vector. | |
| bool | IsNull (Element tolerance=I_BIG_EPSILON) const |
| Checks if this vector is null (all elements approximately zero). | |
| Element | GetDotProduct (const TVector< Size, Element > &vector) const |
| Calculates the dot product with another vector. | |
| Element | GetLength2 () const |
| Calculates the squared Euclidean length of the vector. | |
| Element | GetLength () const |
| Calculates the Euclidean length (magnitude) of the vector. | |
| Element | GetDistance2 (const TVector< Size, Element > &vector) const |
| Calculates the squared distance to another vector. | |
| Element | GetDistance (const TVector< Size, Element > &vector) const |
| Calculates the Euclidean distance to another vector. | |
| Element | GetElementsSum () const |
| Calculates the sum of all vector elements. | |
| bool | Normalize (Element length=1.0) |
| Normalizes the vector to a specified length. | |
| bool | GetNormalized (TVector< Size, Element > &result, Element length=1.0) const |
| Returns a normalized copy of this vector with specified length. | |
| void | GetMinimal (const TVector< Size, Element > &vector, TVector< Size, Element > &result) const |
| Get vector with minimal elements values. | |
| void | GetMaximal (const TVector< Size, Element > &vector, TVector< Size, Element > &result) const |
| Get vector with maximal elements values. | |
| bool | Serialize (iser::IArchive &archive) |
| Serialize this vector to specified archive. | |
| bool | operator== (const TVector< Size, Element > &vector) const |
| bool | operator!= (const TVector< Size, Element > &vector) const |
| bool | operator< (const TVector< Size, Element > &vector) const |
| bool | operator> (const TVector< Size, Element > &vector) const |
| bool | operator<= (const TVector< Size, Element > &vector) const |
| bool | operator>= (const TVector< Size, Element > &vector) const |
| TVector< Size, Element > & | operator= (const TVector< Size, Element > &vector)=default |
| TVector< Size, Element > | operator- () const |
| TVector< Size, Element > | operator+ (const TVector< Size, Element > &vector) const |
| TVector< Size, Element > | operator- (const TVector< Size, Element > &vector) const |
| TVector< Size, Element > | operator* (Element scalar) const |
| TVector< Size, Element > | operator/ (Element scalar) const |
| TVector< Size, Element > & | operator+= (const TVector< Size, Element > &vector) |
| TVector< Size, Element > & | operator-= (const TVector< Size, Element > &vector) |
| TVector< Size, Element > & | operator*= (Element scalar) |
| TVector< Size, Element > & | operator/= (Element scalar) |
| const Element & | operator[] (int i) const |
| Element & | operator[] (int i) |
Public Member Functions inherited from iser::ISerializable | |
| virtual quint32 | GetMinimalVersion (int versionId) const |
| Get minimal needed version to correct storing of this data. | |
Public Member Functions inherited from istd::IChangeable | |
| virtual int | GetSupportedOperations () const |
| Get set of flags for supported operations. | |
| virtual bool | CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) |
| Copy this object from another one. | |
| virtual bool | IsEqual (const IChangeable &object) const |
| Compare this object with another object. | |
| virtual istd::TUniqueInterfacePtr< istd::IChangeable > | CloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const |
| Make a copy of this object. | |
| virtual bool | ResetData (CompatibilityMode mode=CM_WITHOUT_REFS) |
| Reset data to its default state. | |
| virtual void | BeginChanges (const ChangeSet &changeSet) |
| Starts the change transaction. | |
| virtual void | EndChanges (const ChangeSet &changeSet) |
| Ends the change transaction. | |
| virtual void | BeginChangeGroup (const ChangeSet &changeSet) |
| Starts group of changes. | |
| virtual void | EndChangeGroup (const ChangeSet &changeSet) |
| Ends group of changes. | |
Public Member Functions inherited from istd::IPolymorphic | |
| virtual | ~IPolymorphic () |
Additional Inherited Members | |
Static Public Member Functions inherited from imath::TVector< Size, Element > | |
| static int | GetElementsCount () |
| Get number of elements. | |
| static bool | SetElementsCount (int count) |
| Set number of elements. | |
| static const TVector< Size, Element > & | GetZero () |
| Get vector with all coordinates set to 0. | |
Static Public Member Functions inherited from istd::IChangeable | |
| static const ChangeSet & | GetNoChanges () |
| Get empty set of changes. | |
| static const ChangeSet & | GetAnyChange () |
| Get anonymous change set. | |
| static const ChangeSet & | GetAllChanges () |
| Get anonymous change set. | |
| static const ChangeSet & | GetDelegatedChanges () |
| Get delegated change set. | |
Protected Member Functions inherited from istd::IChangeable | |
| virtual void | OnBeginChanges () |
| Callback function for begin change event. | |
| virtual void | OnEndChanges (const ChangeSet &changeSet) |
| Callback function for end change event. | |
Protected Attributes inherited from imath::TVector< Size, Element > | |
| Elements | m_elements |
Generic fixed-size color implementation template.
TComposedColor is a template base class for fixed-size color representations. It combines the mathematical vector operations of TVector with color-specific functionality like normalization, rounding, and serialization. This class serves as the foundation for CRgb, CHsv, CCmyk, CLab, and other fixed-size color classes.
TComposedColor<Size> inherits from TVector<Size> and adds:
TComposedColor serves as the base for:
Definition at line 141 of file TComposedColor.h.
| typedef imath::TVector<Size> icmm::TComposedColor< Size >::BaseClass |
Definition at line 144 of file TComposedColor.h.
| typedef BaseClass::Elements icmm::TComposedColor< Size >::Elements |
Definition at line 145 of file TComposedColor.h.
|
inline |
Definition at line 216 of file TComposedColor.h.
|
inline |
Definition at line 223 of file TComposedColor.h.
|
inlineexplicit |
Definition at line 230 of file TComposedColor.h.
References imath::CVarVector::GetElementsCount().
|
default |
| void icmm::TComposedColor< Size >::GetNormalized | ( | TComposedColor< Size > & | result | ) | const |
Get normalized color.
Normalized values have all components in the range [0, 1].
Definition at line 469 of file TComposedColor.h.
References icmm::TComposedColor< Size >::Normalize().
| void icmm::TComposedColor< Size >::GetRounded | ( | const imath::IDoubleManip & | manipulator, |
| TComposedColor< Size > & | result | ||
| ) |
Get color after components value rounding with specified precision.
| manipulator | manipulator object used to round single components. |
| result | result object. |
Definition at line 430 of file TComposedColor.h.
References imath::TIValueManip< ValueType >::GetRounded().
|
inline |
Check if this color value is normalized.
Normalized values have all components in the range [0, 1].
Definition at line 251 of file TComposedColor.h.
| bool icmm::TComposedColor< Size >::IsRoundedEqual | ( | const TComposedColor< Size > & | color, |
| const imath::IDoubleManip & | manipulator | ||
| ) | const |
Check if two values are equal after rounding.
| color | second color to comparision. |
| manipulator | value manipulator used to round single components. |
Definition at line 439 of file TComposedColor.h.
References imath::TIValueManip< ValueType >::AreValuesEqual().
|
inline |
Allows to compare two colors with tolerance.
Definition at line 244 of file TComposedColor.h.
| void icmm::TComposedColor< Size >::Normalize | ( | ) |
Make this color to be normalized.
Normalized values have all components in the range [0, 1].
Definition at line 452 of file TComposedColor.h.
Referenced by icmm::TComposedColor< Size >::GetNormalized().
|
inline |
Definition at line 292 of file TComposedColor.h.
|
inline |
Definition at line 318 of file TComposedColor.h.
|
inline |
Definition at line 384 of file TComposedColor.h.
|
inline |
Definition at line 410 of file TComposedColor.h.
|
inline |
Definition at line 266 of file TComposedColor.h.
|
inline |
Definition at line 366 of file TComposedColor.h.
|
inline |
Definition at line 279 of file TComposedColor.h.
|
inline |
Definition at line 375 of file TComposedColor.h.
|
inline |
Definition at line 305 of file TComposedColor.h.
|
inline |
Definition at line 331 of file TComposedColor.h.
|
inline |
Definition at line 397 of file TComposedColor.h.
|
inline |
Definition at line 419 of file TComposedColor.h.
|
inline |
Definition at line 344 of file TComposedColor.h.
|
inline |
Definition at line 355 of file TComposedColor.h.
|
overridevirtual |
Load or store state of this object as a archive stream.
Type of operation is depending on archive type.
Implements iser::ISerializable.
Reimplemented in icmm::CCmy, icmm::CCmyk, icmm::CHsv, icmm::CLab, and icmm::CRgb.
Definition at line 480 of file TComposedColor.h.
References iser::IArchive::BeginMultiTag(), iser::IArchive::BeginTag(), iser::IArchive::EndTag(), iser::IArchive::IsStoring(), NULL, iser::IArchive::Process(), iser::CArchiveTag::TT_LEAF, and iser::CArchiveTag::TT_MULTIPLE.