User Documentation
RAVL, Recognition And Vision Library
Ravl - Logic - Planning - NonLinearPlanC

NonLinearPlanC::NonLinearPlanC(const MinTermC &,const MinTermC &,const CallFunc2C> &)
NonLinearPlanC::IsValid(void) const
NonLinearPlanC::Copy(void) const
NonLinearPlanC::Init(const MinTermC &,const MinTermC &)
NonLinearPlanC::InsStep(const NLPStepC &,const MinTermC &)
NonLinearPlanC::InsStep(const NLPStepC &)
NonLinearPlanC::InsCausalLink(NLPStepNodeT,NLPStepNodeT,MinTermC &)
NonLinearPlanC::IsUsefullNewStep(const NLPStepC &,const NLPStepNodeT &) const
NonLinearPlanC::IsComplete(void) const
NonLinearPlanC::GetLinear(void) const
NonLinearPlanC::Dump(void) const
NonLinearPlanC::Score(void) const
NonLinearPlanC::StartNode(void) const
NonLinearPlanC::GoalNode(void) const
NonLinearPlanC::PlanID(void) const
NonLinearPlanC::IsValid(const NLPStepNodeT &) const
NonLinearPlanC::Steps(void) const
NonLinearPlanC::ListSteps(const MinTermC &,const MinTermC &)
RCHandleC::operator =(const RCHandleC &)
RCHandleC::DeepCopy(UIntT) const
RCHandleC::operator ==(const RCHandleC &) const
RCHandleC::operator !=(const RCHandleC &) const
RCHandleC::Hash(void) const
RCHandleC::IsValid(void) const
RCHandleC::IsHandleType(const DT &) const
RCHandleC::CheckHandleType(const DT &) const
RCHandleC::References(void) const
RCHandleC::operator <<(ostream &,const RCHandleC &)
RCHandleC::operator >>(istream &,RCHandleC &)

non-linear plan handle
include "Ravl/Logic/NonLinearPlan.hh"
User Level:Normal
In Scope:RavlLogicN

Parent Classes: Methods:
Default constructor.

NonLinearPlanC(const MinTermC & initalCond,const MinTermC & goalCond,const CallFunc2C<MinTermC,MinTermC,DListC<NLPStepC>> & listSteps)
Create a new plan with the given inital and goal condition.
initalCond - Initial condition. goalCond - Goal condition listSteps - Method for finding new steps for plan.

bool IsValid() const
Is valid handle ?

NonLinearPlanC Copy() const
Copy operator.

bool Init(const MinTermC & Start,const MinTermC & Goal)
Initalise plan.

NLPStepNodeT InsStep(const NLPStepC & Step,const MinTermC & Goal)
Insert a step into the plan

NLPStepNodeT InsStep(const NLPStepC & Step)
Insert a step into the plan.
inline NLPStepNodeT InsStep(DPModelStepC &Step) { VLBindLst Tmp; return InsStep(Step,Tmp); } Insert a step into the plan.

NLPCausalLinkT InsCausalLink(NLPStepNodeT from,NLPStepNodeT to,MinTermC & Cond)
Insert a causal link into the plan. Used to resolve open goals.

NLPOrderLinkT InsOrderLink(NLPStepNodeT from,NLPStepNodeT to)
Insert an order link into the plan. Used to resolve threats.

bool IsUsefullNewStep(const NLPStepC & mt,const NLPStepNodeT & sn) const
Test if is usefull to add postcondition to this plan.
Use to filter out the addition of useless steps.

bool IsComplete() const
Is plan complete.

DListC<NLPStepC> GetLinear() const
Get a linear version of the plan.

void Dump() const
Dump current plan to stdout.

IntT Score(void) const
Give the plan a score for A* search.

const NLPStepNodeT & StartNode() const
Const access to start node.

const NLPStepNodeT & GoalNode() const
Const access to goal node.

BMinTermListIndexC<NLPStepNodeT> & PreConds()
Access PreConditions.

BMinTermListIndexC<NLPStepNodeT> & PostConds()
Access PostConditions.

IntT PlanID() const
Get a unique ID for the plan.

NLPStepNodeT NodeObjH(BGraphTypesC::NodeHandleT H)
Convert a node handle to a ptr.

bool IsValid(const NLPStepNodeT & Oth) const
Check the handle is valid. (For debuging. )

void DoDBCheck()
Debuging checks.

IntT Steps() const
Get the number of steps in the current plan.

DListC<NLPStepC> ListSteps(const MinTermC & goalCond,const MinTermC & fullCond)
Get a list of steps that will meet 'goalCond'.
GoalCond :- Condition that must be meet by Step, FullCond :- 'Wish list' of conditions that also will be needed. Heuristic ordering of steps, place the most likly to be usefull first.

CallFunc2C<MinTermC,MinTermC,DListC<NLPStepC>> & ListSteps()
Access listStep methods.

NLPAgendaItemC GetTopOfAgenda()
Return current agenda item and remove it.

#include "Ravl/RefCounter.hh"
const RCHandleC<NonLinearPlanBodyC> & operator =(const RCHandleC<NonLinearPlanBodyC> & oth)
Assign handle.

RCHandleC<NonLinearPlanBodyC> DeepCopy(UIntT levels = ((UIntT))) const
Do a deep copy of the object.

bool operator ==(const RCHandleC<NonLinearPlanBodyC> & oth) const
Are handles to the same object ?

bool operator !=(const RCHandleC<NonLinearPlanBodyC> & oth) const
Are handles to different objects ?

UIntT Hash() const
Default hash function.
This hashes on the address of the body.

bool IsValid() const
Test if this is a valid handle.

void Invalidate()
Invalidate this handle.
Unattaches the body from the handle.

bool IsHandleType(const DT &) const
Is handle of given type ?

void CheckHandleType(const DT & dummy) const
Check handle type. Throw an expception if not.

UIntT References() const
Find the number of references to the body of this object.

ostream & operator <<(ostream & strm,const RCHandleC<NonLinearPlanBodyC> & obj)

istream & operator >>(istream & strm,RCHandleC<NonLinearPlanBodyC> & obj)

Maintainer:Charles Galambos, Created: 12/12/1996, Documentation by CxxDoc: Tue Aug 13 09:59:02 2002