Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

ModelImporter3DF.h
00001 // Copyright (c) 1998-2014 by Tech Soft 3D, Inc.
00002 //
00003 // The information contained herein is confidential and proprietary to Tech Soft 3D, Inc.,
00004 // and considered a trade secret as defined under civil and criminal statutes.
00005 // Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of
00006 // unauthorized use or misappropriation of its trade secrets.  Use of this information
00007 // by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under
00008 // a written non-disclosure agreement, expressly prescribing the scope and manner of such use.
00009 
00010 #pragma once
00011 
00012 #include "ModelImporter.h"
00013 
00014 #include <hc.h>
00015 
00016 class ModelImporter3DF : public ModelImporter
00017 {
00018 public:
00019     ModelImporter3DF(bool ignoreOffEntities, bool importMetadata);
00020 
00021     bool Import(HC_KEY sceneSegmentKey, HC_KEY modelSegmentKey, HC_KEY includeSegmentKey, 
00022         SUModelRef& model, std::function<void(const std::string&, float)>& progressReporter);
00023 
00024 private:
00025     ModelImporter3DF(const ModelImporter3DF&);
00026     ModelImporter3DF& operator=(const ModelImporter3DF&);
00027 
00028     virtual ImageRepository *       CreateImageRepository(TextureWriter& textureWriter);
00029     virtual TextureRepository *     CreateTextureRepository();
00030     virtual StyleRepository *       CreateStyleRepository(SegmentKey & includeSegmentKey, TextureWriter& textureWriter, ImageRepository& imageRepository, TextureRepository& textureRepository);
00031     virtual GeometryImporter *      CreateGeometryImporter(StyleRepository& styleRepository, VisibilityChecker& visibilityChecker, InheritanceManager& inheritanceManager);
00032     virtual GroupRepository *       CreateGroupRepository(SegmentKey & includeSegmentKey, GeometryImporter& geometryImporter, VisibilityChecker& visibilityChecker, ImageRepository& imageRepository, StyleRepository& textureRepository);
00033     virtual DefinitionRepository *  CreateDefinitionRepository(SegmentKey & includeSegmentKey, GeometryImporter& geometryImporter, GroupRepository& groupRepository, InheritanceManager& inheritanceManager);
00034     virtual DefinitionInstancesImporter *   CreateDefinitionInstancesImporter(DefinitionRepository& definitionRepository, VisibilityChecker& visibilityChecker);
00035 
00036     virtual bool SetTopLevelAttributes(SegmentKey & modelSegmentKey, SUModelRef& model);
00037     virtual bool SetModelOptions(SegmentKey & modelSegmentKey, std::string const & data);
00038     virtual bool SetModelMetadata(SegmentKey & modelSegmentKey, std::string const & data);
00039     virtual bool SetModelCamera(SegmentKey & sceneSegmentKey, SUPoint3D const & position, SUPoint3D const & target, SUVector3D const & up, bool isPerspective, double width, double height);
00040     virtual bool SetSceneCamera(std::string const & sceneName, SUPoint3D const & position, SUPoint3D const & target, SUVector3D const & up, bool isPerspective, double width, double height);
00041 
00042     HC_KEY                      _modelSegmentKey;
00043     HC_KEY                      _includeSegmentKey;
00044 };