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 };