/// <inheritdoc /> public override bool Equals(IccMultiProcessElement other) { if (base.Equals(other) && other is IccClutProcessElement element) { return(this.ClutValue.Equals(element.ClutValue)); } return(false); }
/// <inheritdoc /> public override bool Equals(IccMultiProcessElement other) { if (base.Equals(other) && other is IccMatrixProcessElement element) { return(this.EqualsMatrix(element) && this.MatrixOx1.SequenceEqual(element.MatrixOx1)); } return(false); }
/// <summary> /// Reads a <see cref="IccMultiProcessElementsTagDataEntry"/> /// </summary> /// <returns>The read entry</returns> public IccMultiProcessElementsTagDataEntry ReadMultiProcessElementsTagDataEntry() { int start = this.currentIndex - 8; // TODO: Why are we storing variable ushort inChannelCount = this.ReadUInt16(); ushort outChannelCount = this.ReadUInt16(); uint elementCount = this.ReadUInt32(); IccPositionNumber[] positionTable = new IccPositionNumber[elementCount]; for (int i = 0; i < elementCount; i++) { positionTable[i] = this.ReadPositionNumber(); } IccMultiProcessElement[] elements = new IccMultiProcessElement[elementCount]; for (int i = 0; i < elementCount; i++) { this.currentIndex = (int)positionTable[i].Offset + start; elements[i] = this.ReadMultiProcessElement(); } return(new IccMultiProcessElementsTagDataEntry(elements)); }