1 package org.djutils.draw; 2 3 /** 4 * Interface for objects that have a direction in 3d-space i.c. dirY (similar to tilt; measured as an angle from the positive 5 * z-direction) and dirZ (similar to pan; measured as an angle from the positive x-direction). 6 * <p> 7 * Copyright (c) 2023-2025 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See 8 * for project information <a href="https://djutils.org" target="_blank"> https://djutils.org</a>. The DJUTILS project is 9 * distributed under a three-clause BSD-style license, which can be found at 10 * <a href="https://djutils.org/docs/license.html" target="_blank"> https://djutils.org/docs/license.html</a>. 11 * <p> 12 * There are two naming conventions for phi and theta. Djutils draw uses neither to stay clear of this confusion. The angle from 13 * the positive z-axis to the projection of the direction on the x-y-plane is named <code>dirY</code>. The angle from the 14 * positive x-axis to the projection of the direction in the x-y-plane is named <code>dirZ</code>. 15 * </p> 16 * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a> 17 * @author <a href="https://github.com/peter-knoppers">Peter Knoppers</a> 18 * @author <a href="https://github.com/wjschakel">Wouter Schakel</a> 19 */ 20 public interface Directed3d extends Directed 21 { 22 /** 23 * Retrieve the angle from the positive z axis to the direction. Normally these are values between [0:π]. Angles ≤ 24 * π/2 indicate above the x-y-plane; positive slope, angles > π/2 indicate angles below this plane; negative slope. 25 * @return dirY 26 */ 27 double getDirY(); 28 29 /** 30 * Retrieve the Direction3d. 31 * @return the direction 32 */ 33 default Direction3d getDir() 34 { 35 return new Direction3d(getDirY(), getDirZ()); 36 } 37 38 }