PurplePen.OctreeQuantizer.Octree.OctreeNode.GetPaletteIndex C# (CSharp) Method

GetPaletteIndex() public method

Return the palette index for the passed color
public GetPaletteIndex ( Color32 pixel, int level ) : int
pixel Color32
level int
return int
                public int GetPaletteIndex(Color32* pixel, int level)
                {
                    int paletteIndex = _paletteIndex;

                    if (!_leaf) {
                        int shift = 7 - level;
                        int index = ((pixel->Red & mask[level]) >> (shift - 2)) |
                                    ((pixel->Green & mask[level]) >> (shift - 1)) |
                                    ((pixel->Blue & mask[level]) >> (shift));

                        if (null != _children[index])
                            paletteIndex = _children[index].GetPaletteIndex(pixel, level + 1);
                        else
                            throw new Exception("Didn't expect this!");
                    }

                    return paletteIndex;
                }