View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17  package org.apache.commons.geometry.euclidean.threed;
    18
    19  import java.util.Collections;
    20  import java.util.List;
    21
    22  import org.apache.commons.geometry.core.Transform;
    23
    24  /** Interface representing a triangle in Euclidean 3D space.
    25   */
    26  public interface Triangle3D extends ConvexPolygon3D {
    27
    28      /** The first point in the triangle.
    29       * @return the first point in the triangle
    30       */
    31      Vector3D getPoint1();
    32
    33      /** The second point in the triangle.
    34       * @return the second point in the triangle
    35       */
    36      Vector3D getPoint2();
    37
    38      /** The third point in the triangle.
    39       * @return the third point in the triangle
    40       */
    41      Vector3D getPoint3();
    42
    43      /** {@inheritDoc} */
    44      @Override
    45      Triangle3D reverse();
    46
    47      /** {@inheritDoc} */
    48      @Override
    49      Triangle3D transform(Transform<Vector3D> transform);
    50
    51      /** {@inheritDoc}
    52      *
    53      * <p>This method simply returns a singleton list containing this object.</p>
    54      */
    55      @Override
    56      default List<Triangle3D> toTriangles() {
    57          return Collections.singletonList(this);
    58      }
    59  }