00001 /*
00002 File: VecLink.h
00003
00004 Function: A wavelet radiosity link that implements vector-based
00005 transfer.
00006
00007 Author: Andrew Willmott
00008
00009 Copyright: (c) 1997-2000, Andrew Willmott
00010 */
00011
00012 #ifndef __VecLink__
00013 #define __VecLink__
00014
00015 #include "HRLink.h"
00016
00017 class VecLink : public HRLink
00018 {
00019 public:
00020 HRLink *New() { return new VecLink; };
00021
00022 HRElem *To() { return((HRElem*) to); };
00023 HRElem *From() { return((HRElem*) from); };
00024
00025 RefChoice RefineOracle();
00026
00027 Void Gather();
00028 Bool CalcTransport();
00029 Bool CalcVisibility(HRLink *parent, Bool rv);
00030 GCLReal Error();
00031 GCLReal BFAError();
00032
00033 GCLReal Strength() { return(len(m)); };
00034 Void DebugInfo();
00035
00036 Vector PointIrradiance(const Point &p, const Vector &clipNormal, Colour &clr);
00037
00038 // fields
00039 Vector m;
00040 GCLReal error;
00041 };
00042
00043 #endif