SECurve.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/properties/SEProperty.h"
6#include "cdm/properties/SESegmentConstant.h"
7#include "cdm/properties/SESegmentLinear.h"
8#include "cdm/properties/SESegmentParabolic.h"
9#include "cdm/properties/SESegmentSigmoidal.h"
10
11class CDM_DECL SECurve : public SEProperty
12{
13public:
14
15 SECurve();
16 virtual ~SECurve();
17
18 void Invalidate() override;
19 virtual bool IsValid() const override;
20 virtual void Copy(const SECurve& src);
21
22 virtual bool HasSegment() const;
23
24 SESegmentConstant& AddConstantSegment();
25 SESegmentLinear& AddLinearSegment();
26 SESegmentParabolic& AddParabolicSegment();
27 SESegmentSigmoidal& AddSigmoidalSegment();
28
29 virtual const std::vector<SESegment*>& GetSegments();
30 virtual const std::vector<const SESegment*> GetSegments() const;
31
32 virtual std::string ToString() const;
33 virtual void ToString(std::ostream& str) const;
34
35protected:
36
37 std::vector<SESegment*> m_Segments;
38};
Definition: SECurve.h:12
std::vector< SESegment * > m_Segments
Definition: SECurve.h:37
Definition: SEProperty.h:8
virtual void Invalidate()=0
virtual bool IsValid() const =0
Definition: SESegmentConstant.h:9
Definition: SESegmentLinear.h:9
Definition: SESegmentParabolic.h:9
Definition: SESegmentSigmoidal.h:9

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.