Trax3 3.1.0
trax track library
Loading...
Searching...
No Matches
StaticTrack.h
1// trax track library
2// AD 2024
3//
4// "the resolution of all the fruitless searches"
5//
6// Peter Gabriel
7//
8//
9// Copyright (c) 2025 Trend Redaktions- und Verlagsgesellschaft mbH
10// Copyright (c) 2019 Marc-Michael Horstmann
11//
12// Permission is hereby granted to any person obtaining a copy of this software
13// and associated source code (the "Software"), to use, view, and study the
14// Software for personal or internal business purposes, subject to the following
15// conditions:
16//
17// 1. Redistribution, modification, sublicensing, or commercial use of the
18// Software is NOT permitted without prior written consent from the copyright
19// holder.
20//
21// 2. The Software is provided "AS IS", without warranty of any kind, express
22// or implied.
23//
24// 3. All copies of the Software must retain this license notice.
25//
26// For further information, please contact: horstmann.marc@trendverlag.de
27
28#pragma once
29
30#include "trax/SectionTrack.h"
31
32namespace trax{
33
34 struct Material;
35 struct Shape;
36 struct Scene;
37
38 struct StaticTrack : virtual SectionTrack{
39
41 static dclspc std::shared_ptr<StaticTrack> Make( const Scene& scene ) noexcept;
42
43
45 virtual void SetMaterial( const Material& material ) noexcept = 0;
46
47
49 virtual const Material& GetMaterial() const noexcept = 0;
50
51
53 virtual const Shape& GetShape() const noexcept = 0;
54 };
55
56
65 dclspc spat::Box<Length> GetBoxFor( const TrackBuilder& track, const Section* pSection = nullptr );
66
67} // namespace trax
Value< Dimension< 1, 0, 0 > > Length
Length.
Definition DimensionedValues.h:324
The namespace provides classes and methods for spatial computations.
Definition Box.h:32
Namespace of all the trax track libraries classes and methods.
Definition Collection.h:17
dclspc spat::Box< Length > GetBoxFor(const TrackBuilder &track, const Section *pSection=nullptr)
Get an axis aligned box that completely contains the track.
Axis aligned box.
Definition Box.h:41
Definition Material.h:34
A physical simulation scene for running a simulation and creating physical objects in the scene.
Definition Scene.h:72
A profile of a track.
Definition Section.h:45
Definition SectionTrack.h:35
A Shape is a collection of Geoms.
Definition Shape.h:41
Definition StaticTrack.h:38
virtual const Material & GetMaterial() const noexcept=0
Gets the physical material for the static track.
virtual const Shape & GetShape() const noexcept=0
virtual void SetMaterial(const Material &material) noexcept=0
Sets the physical material for the static track.
static dclspc std::shared_ptr< StaticTrack > Make(const Scene &scene) noexcept
Makes a StaticTrack object.
Interface for making and shaping tracks.
Definition Track.h:831