source: GTP/trunk/Lib/Vis/Preprocessing/src/DifferenceSampling.h @ 2548

Revision 2548, 1.5 KB checked in by mattausch, 17 years ago (diff)
Line 
1#ifndef _DifferenceSampling_H__
2#define _DifferenceSampling_H__
3
4#include "common.h"
5//#include "ObjectPvs.h"
6
7class SimpleRay;
8
9namespace GtpVisibilityPreprocessor {
10
11
12
13/** This sampling strategy utilizes the spatial filter to find
14        areas that are likely to be visible.
15
16        First the filter is applied. The difference set of objects (filtered pvs - unfiltered pvs) gives you the objects
17        which are not found visible yet but have a good probability that they are in fact visible, based on the current
18        state of the sampling and the size of the filter. In fact the difference set is a probably visible set.
19   
20        Idea:
21        We apply the filter for n times, each time with a higher filter radius. The difference set gives you the probable visible set.
22        Then we use a certain #random samples for sampling the view cell border + the object border.
23        We can use different filter sizes to estimate the probablility distribution. The objects shouldreceived samples
24        roughly according to their probability of becoming invisible.
25*/     
26class DifferenceSampling: public SamplingStrategy
27{
28public:
29        DifferenceSampling(Preprocessor &preprocessor);
30        /** Compute the difference set between filtered and unfiltered pvs.
31        */
32        void ComputeDifferenceSet(ViewCell *vc, ObjectContainer &differenceSet);
33
34private:
35
36        virtual bool GenerateSample(SimpleRay &ray);
37
38        //ObjectPvs mDifferencePvs;
39        ObjectContainer mPvsDifference;
40
41        ViewCell *mCurrentViewCell;
42        int mNumSamples;
43};
44
45
46}
47
48#endif
49
Note: See TracBrowser for help on using the repository browser.