VTK  9.1.0
vtkGLTFImporter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkGLTFImporter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 
97 #ifndef vtkGLTFImporter_h
98 #define vtkGLTFImporter_h
99 
100 #include "vtkIOImportModule.h" // For export macro
101 #include "vtkImporter.h"
102 #include "vtkSmartPointer.h" // For SmartPointer
103 
104 #include <map> // For map
105 #include <vector> // For vector
106 
107 class vtkActor;
108 class vtkCamera;
110 class vtkTexture;
111 
112 class VTKIOIMPORT_EXPORT vtkGLTFImporter : public vtkImporter
113 {
114 public:
115  static vtkGLTFImporter* New();
116 
117  vtkTypeMacro(vtkGLTFImporter, vtkImporter);
118  void PrintSelf(ostream& os, vtkIndent indent) override;
119 
121 
127 
134 
138  std::string GetOutputsDescription() override { return this->OutputsDescription; };
139 
143  void UpdateTimeStep(double timestep) override;
144 
149 
153  std::string GetAnimationName(vtkIdType animationIndex) override;
154 
156 
159  void EnableAnimation(vtkIdType animationIndex) override;
160  void DisableAnimation(vtkIdType animationIndex) override;
161  bool IsAnimationEnabled(vtkIdType animationIndex) override;
163 
168 
172  std::string GetCameraName(vtkIdType camIndex) override;
173 
178  void SetCamera(vtkIdType camIndex) override;
179 
185  bool GetTemporalInformation(vtkIdType animationIndex, double frameRate, int& nbTimeSteps,
186  double timeRange[2], vtkDoubleArray* timeSteps) override;
187 
188 protected:
189  vtkGLTFImporter() = default;
190  ~vtkGLTFImporter() override;
191 
192  int ImportBegin() override;
193  void ImportActors(vtkRenderer* renderer) override;
194  void ImportCameras(vtkRenderer* renderer) override;
195  void ImportLights(vtkRenderer* renderer) override;
196 
198 
199  char* FileName = nullptr;
200 
201  std::map<int, vtkSmartPointer<vtkCamera>> Cameras;
202  std::map<int, vtkSmartPointer<vtkTexture>> Textures;
203  std::map<int, std::vector<vtkSmartPointer<vtkActor>>> Actors;
206  std::vector<bool> EnabledAnimations;
207  vtkIdType EnabledCamera = -1;
208 
209 private:
210  vtkGLTFImporter(const vtkGLTFImporter&) = delete;
211  void operator=(const vtkGLTFImporter&) = delete;
212 };
213 
214 #endif
vtkGLTFImporter::ImportBegin
int ImportBegin() override
vtkGLTFImporter::GetCameraName
std::string GetCameraName(vtkIdType camIndex) override
Get the name of a camera.
vtkGLTFImporter::DisableAnimation
void DisableAnimation(vtkIdType animationIndex) override
Enable/Disable/Get the status of specific animations.
vtkGLTFImporter::GetTemporalInformation
bool GetTemporalInformation(vtkIdType animationIndex, double frameRate, int &nbTimeSteps, double timeRange[2], vtkDoubleArray *timeSteps) override
Get temporal informations for the currently enabled animations.
vtkGLTFImporter::vtkSetFilePathMacro
vtkSetFilePathMacro(FileName)
Specify the name of the file to read.
vtkGLTFImporter::~vtkGLTFImporter
~vtkGLTFImporter() override
vtkImporter
importer abstract class
Definition: vtkImporter.h:60
vtkGLTFImporter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkImporter.h
vtkGLTFImporter::ImportLights
void ImportLights(vtkRenderer *renderer) override
vtkIdType
int vtkIdType
Definition: vtkType.h:332
vtkGLTFImporter::GetNumberOfAnimations
vtkIdType GetNumberOfAnimations() override
Get the number of available animations.
vtkGLTFImporter::Textures
std::map< int, vtkSmartPointer< vtkTexture > > Textures
Definition: vtkGLTFImporter.h:202
vtkSmartPointer< vtkCamera >
vtkGLTFImporter::GetNumberOfCameras
vtkIdType GetNumberOfCameras() override
Get the number of available cameras.
vtkGLTFImporter::GetOutputsDescription
std::string GetOutputsDescription() override
Get a printable string describing all outputs.
Definition: vtkGLTFImporter.h:138
vtkGLTFImporter::vtkGetFilePathMacro
vtkGetFilePathMacro(FileName)
Specify the name of the file to read.
vtkGLTFImporter::ApplySkinningMorphing
void ApplySkinningMorphing()
vtkGLTFImporter::GetAnimationName
std::string GetAnimationName(vtkIdType animationIndex) override
Return the name of the animation.
vtkGLTFImporter::Loader
vtkSmartPointer< vtkGLTFDocumentLoader > Loader
Definition: vtkGLTFImporter.h:204
vtkTexture
handles properties associated with a texture map
Definition: vtkTexture.h:175
vtkGLTFImporter::SetCamera
void SetCamera(vtkIdType camIndex) override
Enable a specific camera.
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:155
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkGLTFImporter::New
static vtkGLTFImporter * New()
vtkGLTFImporter::EnableAnimation
void EnableAnimation(vtkIdType animationIndex) override
Enable/Disable/Get the status of specific animations.
vtkCamera
a virtual camera for 3D rendering
Definition: vtkCamera.h:155
vtkSmartPointer.h
vtkGLTFImporter::Cameras
std::map< int, vtkSmartPointer< vtkCamera > > Cameras
Definition: vtkGLTFImporter.h:201
vtkGLTFImporter::OutputsDescription
std::string OutputsDescription
Definition: vtkGLTFImporter.h:205
vtkGLTFImporter
Import a GLTF file.
Definition: vtkGLTFImporter.h:113
vtkGLTFImporter::ImportCameras
void ImportCameras(vtkRenderer *renderer) override
vtkX3D::string
@ string
Definition: vtkX3D.h:496
vtkGLTFImporter::vtkGLTFImporter
vtkGLTFImporter()=default
vtkGLTFDocumentLoader
Deserialize a GLTF model file.
Definition: vtkGLTFDocumentLoader.h:62
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:182
vtkGLTFImporter::Actors
std::map< int, std::vector< vtkSmartPointer< vtkActor > > > Actors
Definition: vtkGLTFImporter.h:203
vtkGLTFImporter::EnabledAnimations
std::vector< bool > EnabledAnimations
Definition: vtkGLTFImporter.h:206
vtkGLTFImporter::IsAnimationEnabled
bool IsAnimationEnabled(vtkIdType animationIndex) override
Enable/Disable/Get the status of specific animations.
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:145
vtkGLTFImporter::UpdateTimeStep
void UpdateTimeStep(double timestep) override
update timestep
vtkGLTFImporter::GetCamera
vtkSmartPointer< vtkCamera > GetCamera(unsigned int id)
glTF defines multiple camera objects, but no default behavior for which camera should be used.
vtkGLTFImporter::ImportActors
void ImportActors(vtkRenderer *renderer) override