Coverage Report

Created: 2026-02-26 06:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/alembic/lib/Alembic/Abc/ISampleSelector.h
Line
Count
Source
1
//-*****************************************************************************
2
//
3
// Copyright (c) 2009-2011,
4
//  Sony Pictures Imageworks, Inc. and
5
//  Industrial Light & Magic, a division of Lucasfilm Entertainment Company Ltd.
6
//
7
// All rights reserved.
8
//
9
// Redistribution and use in source and binary forms, with or without
10
// modification, are permitted provided that the following conditions are
11
// met:
12
// *       Redistributions of source code must retain the above copyright
13
// notice, this list of conditions and the following disclaimer.
14
// *       Redistributions in binary form must reproduce the above
15
// copyright notice, this list of conditions and the following disclaimer
16
// in the documentation and/or other materials provided with the
17
// distribution.
18
// *       Neither the name of Sony Pictures Imageworks, nor
19
// Industrial Light & Magic nor the names of their contributors may be used
20
// to endorse or promote products derived from this software without specific
21
// prior written permission.
22
//
23
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
//
35
//-*****************************************************************************
36
37
#ifndef Alembic_Abc_ISampleSelector_h
38
#define Alembic_Abc_ISampleSelector_h
39
40
#include <Alembic/Util/Export.h>
41
#include <Alembic/Abc/Foundation.h>
42
43
namespace Alembic {
44
namespace Abc {
45
namespace ALEMBIC_VERSION_NS {
46
47
//-*****************************************************************************
48
class ALEMBIC_EXPORT ISampleSelector
49
{
50
public:
51
    enum TimeIndexType
52
    {
53
        kFloorIndex,
54
        kCeilIndex,
55
        kNearIndex
56
    };
57
58
    ISampleSelector()
59
0
      : m_requestedIndex( 0 ),
60
0
        m_requestedTime( 0.0 ),
61
0
        m_requestedTimeIndexType( kNearIndex ) {}
62
63
    ISampleSelector( index_t iReqIdx )
64
0
      : m_requestedIndex( iReqIdx ),
65
0
        m_requestedTime( 0.0 ),
66
0
        m_requestedTimeIndexType( kNearIndex ) {}
67
68
    explicit ISampleSelector( chrono_t iReqTime,
69
                              TimeIndexType iReqIdxType = kNearIndex )
70
      : m_requestedIndex( -1 ),
71
        m_requestedTime( iReqTime ),
72
0
        m_requestedTimeIndexType( iReqIdxType ) {}
73
74
0
    index_t getRequestedIndex() const { return m_requestedIndex; }
75
0
    chrono_t getRequestedTime() const { return m_requestedTime; }
76
    TimeIndexType getRequestedTimeIndexType() const
77
0
    { return m_requestedTimeIndexType; }
78
79
    index_t getIndex( const AbcA::TimeSamplingPtr & iTsmp, index_t
80
        iNumSamples ) const;
81
82
private:
83
    index_t m_requestedIndex;
84
    chrono_t m_requestedTime;
85
    TimeIndexType m_requestedTimeIndexType;
86
};
87
88
} // End namespace ALEMBIC_VERSION_NS
89
90
using namespace ALEMBIC_VERSION_NS;
91
92
} // End namespace Abc
93
} // End namespace Alembic
94
95
#endif