1
#ifndef _RAYTRACEHIDER_H
2
#define _RAYTRACEHIDER_H
5
#include "RenderBucket.h"
17
class RayTraceHider : public Hider
20
RayTraceHider(const Attributes& attr, const Options& opt);
21
virtual ~RayTraceHider();
22
virtual void worldBegin();
23
virtual void worldEnd();
24
virtual void insert(Primitive*);
25
virtual void remove(const Primitive*);
26
virtual bool bucketBegin();
27
virtual Primitive *firstPrim();
28
virtual void hide(MicroPolygonGrid &g);
29
virtual Color trace(const Point3 &p, const Vector &r);
30
virtual void bucketEnd();
32
//virtual int inFrustum(Primitive* p);
34
virtual unsigned int gridSize();
35
virtual float rasterEstimate(const Bound &b);
36
virtual float rasterEstimate(const Point3 &p0, const Point3 &p1);
38
// for Z files, no shading needed, only need to know depth data
39
virtual bool noShading() const { return no_shading; }
42
// local camera because of sampling at higher resolution
45
RtFilterFunc pixelfilter;
47
int X_ftmax, X_xt_smp, Y_ftmax, Y_xt_smp;
50
int xsize, ysize, xsamples, ysamples;
52
float jitter, shmin, shmax;
53
bool empty_pixbuf, no_shading, has_z, only_z;
56
typedef std::vector<Bucket>::iterator BucketIterator;
57
BucketIterator cur_bucket;
58
unsigned int bucket_sizeX, bucket_sizeY;
59
std::vector<Bucket> buckets;
62
bool sample_dof, sample_motion;
67
#endif //_RAYTRACEHIDER_H