diff --git a/src/constraint_solver/constraint_solver.h b/src/constraint_solver/constraint_solver.h index 479a41c2dd..e0b16eadc7 100644 --- a/src/constraint_solver/constraint_solver.h +++ b/src/constraint_solver/constraint_solver.h @@ -5012,6 +5012,11 @@ class DisjunctiveConstraint : public Constraint { } } + virtual const std::vector& nexts() const = 0; + virtual const std::vector& actives() const = 0; + virtual const std::vector& time_cumuls() const = 0; + virtual const std::vector& time_slacks() const = 0; + protected: const std::vector intervals_; std::unique_ptr transition_time_; diff --git a/src/constraint_solver/resource.cc b/src/constraint_solver/resource.cc index a4b498352d..f2f4257929 100644 --- a/src/constraint_solver/resource.cc +++ b/src/constraint_solver/resource.cc @@ -911,6 +911,18 @@ class FullDisjunctiveConstraint : public DisjunctiveConstraint { JoinDebugStringPtr(intervals_, ",").c_str()); } + virtual const std::vector& nexts() const { return nexts_; } + + virtual const std::vector& actives() const { return actives_; } + + virtual const std::vector& time_cumuls() const { + return time_cumuls_; + } + + virtual const std::vector& time_slacks() const { + return time_slacks_; + } + private: int64 Distance(int64 activity_plus_one, int64 next_activity_plus_one) { return (transition_time_.get() == nullptr || activity_plus_one == 0 ||