Program Listing for File pose_tree_manager.hpp
↰ Return to documentation for file (include/holoscan/pose_tree/pose_tree_manager.hpp
)
/*
* SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef HOLOSCAN_POSE_TREE_POSE_TREE_MANAGER_HPP
#define HOLOSCAN_POSE_TREE_POSE_TREE_MANAGER_HPP
#include <memory>
#include <utility>
#include "holoscan/core/component_spec.hpp"
#include "holoscan/core/fragment_service.hpp"
#include "holoscan/core/parameter.hpp"
#include "holoscan/core/resource.hpp"
#include "holoscan/pose_tree/pose_tree.hpp"
namespace holoscan {
class PoseTree; // Forward declaration
class ComponentSpec;
class PoseTreeManager : public holoscan::Resource, public holoscan::FragmentService {
public:
HOLOSCAN_RESOURCE_FORWARD_ARGS_SUPER(PoseTreeManager, holoscan::Resource)
PoseTreeManager() = default;
std::shared_ptr<Resource> resource() const override;
void resource(const std::shared_ptr<Resource>& resource) override;
void initialize() override;
void setup(holoscan::ComponentSpec& spec) override;
std::shared_ptr<PoseTree> tree();
std::shared_ptr<PoseTree> tree() const;
private:
// Parameters for PoseTree::init
Parameter<int32_t> number_frames_;
Parameter<int32_t> number_edges_;
Parameter<int32_t> history_length_;
Parameter<int32_t> default_number_edges_;
Parameter<int32_t> default_history_length_;
Parameter<int32_t> edges_chunk_size_;
Parameter<int32_t> history_chunk_size_;
std::shared_ptr<PoseTree> pose_tree_instance_;
std::weak_ptr<Resource> resource_;
};
} // namespace holoscan
#endif/* HOLOSCAN_POSE_TREE_POSE_TREE_MANAGER_HPP */