3dLightList.cpp
上传用户:shxiangxiu
上传日期:2007-01-03
资源大小:1101k
文件大小:2k
源码类别:

OpenGL

开发平台:

Visual C++

  1. /////////////////////////////////////////////////////////////////////////////
  2. // 3dLightList.cpp : implementation file
  3. //
  4. // glOOP (OpenGL Object Oriented Programming library)
  5. // Copyright (c) Craig Fahrnbach 1997, 1998
  6. //
  7. // OpenGL is a registered trademark of Silicon Graphics
  8. //
  9. //
  10. // This program is provided for educational and personal use only and
  11. // is provided without guarantee or warrantee expressed or implied.
  12. //
  13. // Commercial use is strickly prohibited without written permission
  14. // from ImageWare Development.
  15. //
  16. // This program is -not- in the public domain.
  17. //
  18. /////////////////////////////////////////////////////////////////////////////
  19. #include "stdafx.h"
  20. #include "glOOP.h"
  21. #ifdef _DEBUG
  22. #define new DEBUG_NEW
  23. #undef THIS_FILE
  24. static char THIS_FILE[] = __FILE__;
  25. #endif
  26. //////////////////////////////////////////////////////////////////
  27. // C3dLightList
  28. //IMPLEMENT_DYNAMIC(C3dLightList, CObList)
  29. /////////////////////////////////////////////////////////////////////////////
  30. // C3dLightList construction
  31. C3dLightList::C3dLightList()
  32. {
  33. // TODO: add construction code here,
  34. // Place all significant initialization in InitInstance
  35. }
  36. /////////////////////////////////////////////////////////////////////////////
  37. // C3dLightList Destructor
  38. C3dLightList::~C3dLightList()
  39. {
  40. }
  41. /////////////////////////////////////////////////////////////////////////////
  42. // C3dLightList commands
  43. void C3dLightList::Remove(C3dObject* pLight)
  44. {
  45. if (!pLight) return;
  46. POSITION pos = CObList::Find(pLight);
  47. if (pos) {
  48. RemoveAt(pos);
  49. }
  50. }
  51. void C3dLightList::Delete(C3dObject* pLight)
  52. {
  53. if (!pLight) return;
  54. Remove(pLight);
  55. }
  56. void C3dLightList::DeleteAll()
  57. {
  58. while (!IsEmpty())
  59. C3dObject* pLight = (C3dObject*) RemoveHead();
  60. }
  61. #if 0 // not used
  62. // See if the list contains a shape with the same frame and
  63. // visual attachments
  64. C3dObject* C3dLightList::Find(C3dObject* pLight)
  65. {
  66. if (!pLight) return NULL;
  67. IDirect3DRMFrame* pIFrame = pLight->GetInterface();
  68. IDirect3DRMVisual* pIVisual = pLight->GetVisual();
  69. C3dObject* pListEntry = NULL;
  70. // walk the list
  71. POSITION pos = GetHeadPosition();
  72. while (pos) {
  73. pListEntry = GetNext(pos);
  74. if ((pListEntry->GetInterface() == pIFrame)
  75. && (pListEntry->GetVisual() == pIVisual)) {
  76. return pListEntry;
  77. }
  78. }
  79. return NULL; // end of list
  80. }
  81. #endif