Cortex  10.0.0-a4
SampledSceneInterface.h
1 //
3 // Copyright (c) 2013, Image Engine Design Inc. All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 //
12 // * Redistributions in binary form must reproduce the above copyright
13 // notice, this list of conditions and the following disclaimer in the
14 // documentation and/or other materials provided with the distribution.
15 //
16 // * Neither the name of Image Engine Design nor the names of any
17 // other contributors to this software may be used to endorse or
18 // promote products derived from this software without specific prior
19 // written permission.
20 //
21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
22 // IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23 // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
25 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 //
34 
35 #ifndef IECORE_SAMPLEDSCENEINTERFACE_H
36 #define IECORE_SAMPLEDSCENEINTERFACE_H
37 
38 #include "IECore/Export.h"
39 #include "IECore/SceneInterface.h"
40 
41 namespace IECore
42 {
43 
44 IE_CORE_FORWARDDECLARE( SampledSceneInterface );
45 
46 
60 class IECORE_API SampledSceneInterface : public SceneInterface
61 {
62  public :
63 
64  IE_CORE_DECLARERUNTIMETYPED( SampledSceneInterface, SceneInterface );
65 
66  ~SampledSceneInterface() override = 0;
67 
69  virtual size_t numBoundSamples() const = 0;
71  virtual size_t numTransformSamples() const = 0;
73  virtual size_t numAttributeSamples( const SceneInterface::Name &name ) const = 0;
75  virtual size_t numObjectSamples() const = 0;
76 
78  virtual double boundSampleTime( size_t sampleIndex ) const = 0;
80  virtual double transformSampleTime( size_t sampleIndex ) const = 0;
82  virtual double attributeSampleTime( const SceneInterface::Name &name, size_t sampleIndex ) const = 0;
84  virtual double objectSampleTime( size_t sampleIndex ) const = 0;
85 
87  virtual Imath::Box3d readBoundAtSample( size_t sampleIndex ) const = 0;
89  virtual ConstDataPtr readTransformAtSample( size_t sampleIndex ) const = 0;
91  virtual Imath::M44d readTransformAsMatrixAtSample( size_t sampleIndex ) const = 0;
93  virtual ConstObjectPtr readAttributeAtSample( const SceneInterface::Name &name, size_t sampleIndex ) const = 0;
96  virtual ConstObjectPtr readObjectAtSample( size_t sampleIndex ) const = 0;
97 
99  virtual double boundSampleInterval( double time, size_t &floorIndex, size_t &ceilIndex ) const = 0;
101  virtual double transformSampleInterval( double time, size_t &floorIndex, size_t &ceilIndex ) const = 0;
103  virtual double attributeSampleInterval( const SceneInterface::Name &name, double time, size_t &floorIndex, size_t &ceilIndex ) const = 0;
105  virtual double objectSampleInterval( double time, size_t &floorIndex, size_t &ceilIndex ) const = 0;
106 
114 
115  Imath::Box3d readBound( double time ) const override;
116  ConstDataPtr readTransform( double time ) const override;
119  Imath::M44d readTransformAsMatrix( double time ) const override;
120  ConstObjectPtr readAttribute( const Name &name, double time ) const override;
121  ConstObjectPtr readObject( double time ) const override;
122 
123 };
124 
125 
126 } // namespace IECore
127 
128 #endif // IECORE_SAMPLEDSCENEINTERFACE_H
Definition: SceneInterface.h:69
Definition: SampledSceneInterface.h:60
Definition: InternedString.h:55
This namespace contains all components of the core library.
Definition: AddSmoothSkinningInfluencesOp.h:43