KJB
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
bbb_description_prior.h
Go to the documentation of this file.
1 /* =========================================================================== *
2  |
3  | Copyright (c) 1994-2011 by Kobus Barnard (author)
4  |
5  | Personal and educational use of this code is granted, provided that this
6  | header is kept intact, and that the authorship is not misrepresented, that
7  | its use is acknowledged in publications, and relevant papers are cited.
8  |
9  | For other use contact the author (kobus AT cs DOT arizona DOT edu).
10  |
11  | Please note that the code in this file has not necessarily been adequately
12  | tested. Naturally, there is no guarantee of performance, support, or fitness
13  | for any particular task. Nonetheless, I am interested in hearing about
14  | problems that you encounter.
15  |
16  | Author: Ernesto Brau
17  * =========================================================================== */
18 
19 /* $Id$ */
20 
21 #ifndef B3_DESCRIPTION_PRIOR_H
22 #define B3_DESCRIPTION_PRIOR_H
23 
31 #include <boost/variant.hpp>
32 
33 namespace kjb {
34 namespace bbb {
35 
42 {
43 public:
46  (
47  const Intentional_activity& root,
52  ) :
53  root_(root),
54  ass_prior_p_(&association_prior),
55  as_prior_p_(&activity_sequence_prior),
56  traj_prior_p_(&trajectory_prior),
57  lib_(library)
58  {}
59 
61  const Intentional_activity& root_activity() const { return root_; }
62 
64  Association_prior& association_prior() const { return *ass_prior_p_; }
65 
67  As_prior& activity_sequence_prior() const { return *as_prior_p_; }
68 
70  Trajectory_prior& trajectory_prior() const { return *traj_prior_p_; }
71 
73  const Activity_library& library() const { return lib_; }
74 
75 private:
77  mutable Association_prior* ass_prior_p_;
78  mutable Activity_sequence_prior* as_prior_p_;
79  mutable Trajectory_prior* traj_prior_p_;
80  const Activity_library& lib_;
81 };
82 
88 class Sample_tree : public boost::static_visitor<>
89 {
90 public:
91  Sample_tree(const Description_prior& prior, Description& description) :
92  prior_(prior), description_(description) {}
93 
95  void operator()(const Intentional_activity& root);
96 
98  void operator()(const Physical_activity&) {}
99 
100 private:
101  const Description_prior& prior_;
102  Description& description_;
103 };
104 
106 Description sample(const Description_prior& prior);
107 
108 }} // namespace kjb::bbb
109 
110 #endif /*B3_DESCRIPTION_PRIOR_H */
111 
Definition: bbb_intentional_activity.h:39
Description_prior(const Intentional_activity &root, Association_prior &association_prior, Activity_sequence_prior &activity_sequence_prior, Trajectory_prior &trajectory_prior, const Activity_library &library)
Create a desciption prior composed of the given priors.
Definition: bbb_description_prior.h:46
Activity_sequence sample(const As_prior &prior)
Sample an activity sequence from the given prior.
Definition: bbb_activity_sequence_prior.cpp:90
Association_prior & association_prior() const
Return the association prior used by this description prior.
Definition: bbb_description_prior.h:64
const Intentional_activity & root_activity() const
Root activity for this prior.
Definition: bbb_description_prior.h:61
Definition: bbb_trajectory_prior.h:42
Definition: bbb_association_prior.h:36
Definition: bbb_description.h:62
Definition: bbb_description_prior.h:41
const Activity_library & library() const
Get activity library.
Definition: bbb_description_prior.h:73
Trajectory_prior & trajectory_prior() const
Return the trajectory prior used by this description prior.
Definition: bbb_description_prior.h:70
Sample_tree(const Description_prior &prior, Description &description)
Definition: bbb_description_prior.h:91
void operator()(const Intentional_activity &root)
Acenstrally sample from an intentional activity node.
Definition: bbb_description_prior.cpp:40
As_prior & activity_sequence_prior() const
Return the sequence prior used by this description prior.
Definition: bbb_description_prior.h:67
Definition: bbb_activity_sequence_prior.h:40
Definition: bbb_physical_activity.h:39
Definition: bbb_activity_library.h:38
void operator()(const Physical_activity &)
Sample from a physical activity node (does nothing).
Definition: bbb_description_prior.h:98
Definition: bbb_description_prior.h:88