PolyRadTool.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * PolyRadTool.h
  3. * Poly
  4. *
  5. * Created by Ivan Safrin on 9/25/08.
  6. * Copyright 2008 __MyCompanyName__. All rights reserved.
  7. *
  8. */
  9. // @package Scene
  10. #pragma once
  11. #include "PolyGlobals.h"
  12. #include "PolyGenericScene.h"
  13. #include "PolyLightmapPacker.h"
  14. #include "PolyPolygon.h"
  15. namespace Polycode {
  16. class GenericScene;
  17. class LightmapPacker;
  18. class LightmapFace;
  19. struct Lumel;
  20. class Polygon;
  21. class _PolyExport RadTool {
  22. public:
  23. RadTool(GenericScene *scene, LightmapPacker *packer);
  24. ~RadTool();
  25. void fiatLux(int radPasses);
  26. private:
  27. void applyLight(SceneLight *light);
  28. void lightLumel(SceneLight *light,Image *image, Lumel *lumel);
  29. void doRadiosityPass();
  30. void radLumel(Lumel *lumel,Image *image);
  31. bool worldRayTest(Vector3 origin, Vector3 destination, Polygon *hitPolygon);
  32. static bool rayTriangleIntersect(Vector3 ray_origin, Vector3 ray_direction, Vector3 vert0, Vector3 vert1, Vector3 vert2, Vector3 *hitPoint);
  33. GenericScene *scene;
  34. LightmapPacker *packer;
  35. };
  36. }