CqOctree.h
上传用户:gzboli
上传日期:2013-04-10
资源大小:471k
文件大小:2k
源码类别:

图片显示

开发平台:

Visual C++

  1. // CqOctree.h: interface for the CCqOctree class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_CQOCTREE_H__84037701_A3AA_462E_9A3F_137652C5B6DC__INCLUDED_)
  5. #define AFX_CQOCTREE_H__84037701_A3AA_462E_9A3F_137652C5B6DC__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. // structure use internally
  10. // store the necessary info of a node in octree
  11. typedef struct _NODE 
  12. {
  13.     BOOL bIsLeaf;               // TRUE if node has no children
  14.     UINT nPixelCount;           // Number of pixels represented by this leaf
  15.     UINT nRedSum;               // Sum of red components
  16.     UINT nGreenSum;             // Sum of green components
  17.     UINT nBlueSum;              // Sum of blue components
  18.     struct _NODE* pChild[8];    // Pointers to child nodes
  19.     struct _NODE* pNext;        // Pointer to next reducible node
  20. }NODE;
  21. // Function prototypes
  22. //Global use, define it in dibapi.h
  23. //HPALETTE CreateOctreePalette (HDIB hDIB, UINT nMaxColors, UINT nColorBits)
  24. //HPALETTE CreateOctreePalette (LPSTR lpDIB, UINT nMaxColors, UINT nColorBits)
  25. //Local use only
  26. void AddColor (NODE**, BYTE, BYTE, BYTE, UINT, UINT, UINT*, NODE**);
  27. NODE* CreateNode (UINT, UINT, UINT*, NODE**);
  28. void ReduceTree (UINT, UINT*, NODE**);
  29. void DeleteTree (NODE**);
  30. void GetPaletteColors (NODE*, PALETTEENTRY*, UINT*);
  31. int GetRightShiftCount (DWORD);
  32. int GetLeftShiftCount (DWORD);
  33. #endif // !defined(AFX_CQOCTREE_H__84037701_A3AA_462E_9A3F_137652C5B6DC__INCLUDED_)