function WankelEngine(Actor, World)
%Wankel Engine Visualization

%   Copyright 1998-2021 HUMUSOFT s.r.o.

    %% Create a scene floor from the template
    F3D.Geometry.templateFloor(Actor, [10 10 0.1]);

    % Main actor
    Engine = addChild(Actor, 'Engine');
    Engine.Location = [0 0 2];

    World.CoordinateSystem = 'unreal';

    % Import STL model of the rotor
    Rotor = addChild(Engine, 'Rotor');
    load(Rotor, fullfile(fileparts(fileparts(fileparts(mfilename('fullpath')))), 'data', 'wankel', 'rotor.stl'), 1/10);
    Rotor.Color = [1 1 1];
    Rotor.Flat = true;
    Rotor.Rotation = [pi/2 pi 0];
    Rotor.Location = [0 0 0.15];
    Rotor.SemanticID = 2;

    % Add empty body as tracker
    Tracker1 = addChild(Rotor, 'Tracker1');
    Tracker1.Location = [0 -1.05 0.40];
    %Tracker1.Trail = F3D.Type.Trail('Color', [1 0 0], 'Duration', 10);

    % Add empty body as tracker
    Tracker2 = addChild(Rotor, 'Tracker2');
    Tracker2.Location = [0 -1.05 -0.40];
    %Tracker2.Trail = F3D.Type.Trail('Color', [0 0 1], 'Duration', 10);

    % Create excentric shaft
    Shaft = addChild(Engine, 'Shaft');
        [V, N, F] = F3D.Geometry.cylinder([0.75 0.50 0.75], 32, 2);
        addMesh(Shaft, V + [0 0 0.15], N, F);
        [V, N, F] = F3D.Geometry.cylinder([0.40 1.50 0.40], 32, 2);
        addMesh(Shaft, V, N, F);
        [V, N, F] = F3D.Geometry.box([0.05 1.48 0.05]);
        addMesh(Shaft, V + [0 0 0.20], N, F);
        [V, N, F] = F3D.Geometry.box([0.05 0.60 0.05]);
        addMesh(Shaft, V + [0 0 0.50], N, F);
        createMesh(Shaft);
    Shaft.Color = [1 0.8 0.2];
    Shaft.Shininess = 0.8;
    Shaft.SemanticID = 1;

end