VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
ray.cpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2025-2026 Arnis Lektauers
3//
4// Created by Arnis Lektauers on 13.02.2026.
5//
6#include "ray.h"
7
8namespace visutwin::canvas
9{
10 Ray::Ray() : _origin(0.0f), _direction(0.0f, 0.0f, -1.0f)
11 {
12 }
13
14 Ray::Ray(const Vector3& origin, const Vector3& direction) : _origin(origin), _direction(direction)
15 {
16 }
17
19 {
20 _origin = origin;
21 _direction = direction;
22 return *this;
23 }
24
25 Ray& Ray::copy(const Ray& src)
26 {
27 return set(src._origin, src._direction);
28 }
29
31 {
32 return Ray(_origin, _direction);
33 }
34}
35
Ray & set(const Vector3 &origin, const Vector3 &direction)
Definition ray.cpp:18
Ray clone() const
Definition ray.cpp:30
Ray & copy(const Ray &src)
Definition ray.cpp:25
const Vector3 & origin() const
Definition ray.h:19
const Vector3 & direction() const
Definition ray.h:21
3D vector for positions, directions, and normals with multi-backend SIMD acceleration.
Definition vector3.h:29