rhubarb-lip-sync/rhubarb/src/animation/shape-rule.h

25 lines
676 B
C

#pragma once
#include "animation-rules.h"
#include "core/phone.h"
#include "time/bounded-timeline.h"
#include "time/continuous-timeline.h"
#include "time/time-range.h"
struct ShapeRule {
ShapeSet shapeSet;
boost::optional<Phone> phone;
TimeRange phoneTiming;
ShapeRule(ShapeSet shapeSet, boost::optional<Phone> phone, TimeRange phoneTiming);
static ShapeRule getInvalid();
bool operator==(const ShapeRule&) const;
bool operator!=(const ShapeRule&) const;
bool operator<(const ShapeRule&) const;
};
// Returns shape rules for an entire timeline of phones.
ContinuousTimeline<ShapeRule> getShapeRules(const BoundedTimeline<Phone>& phones);