// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 #pragma once #include "krakatoa/scene_context.hpp" #include <magma/geometry_provider.hpp> #include <boost/shared_ptr.hpp> #include <frantic/channels/channel_operation_compiler.hpp> #include <max.h> namespace magma { class magma_mxs_parser; magma_mxs_parser* create_mxs_parser(); class magma_mxs_parser { public: virtual ~magma_mxs_parser() {} /** * Setters */ virtual void set_max_data( ReferenceTarget* pMagmaHolder ) = 0; virtual void set_bound_inode( INode* pNode ) = 0; virtual void set_scene_context( krakatoa::scene_context_ptr pSceneContext ) = 0; virtual void set_geometry_provider( geometry_provider_ptr pGeomProvider ) = 0; /** * Getters */ virtual INode* get_bound_inode() = 0; virtual ReferenceTarget* get_max_data() = 0; virtual geometry_provider& get_geometry_provider() = 0; virtual krakatoa::scene_context& get_scene_context() = 0; virtual krakatoa::scene_context_ptr get_scene_context_ptr() = 0; /** * Methods */ virtual void create_expression( std::vector<frantic::channels::channel_op_node*>& outExpr ) = 0; }; } // namespace magma