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