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.io.euclidean.threed.stl; 18 19 import java.nio.ByteOrder; 20 import java.nio.charset.Charset; 21 /* 22 * Licensed to the Apache Software Foundation (ASF) under one or more 23 * contributor license agreements. See the NOTICE file distributed with 24 * this work for additional information regarding copyright ownership. 25 * The ASF licenses this file to You under the Apache License, Version 2.0 26 * (the "License"); you may not use this file except in compliance with 27 * the License. You may obtain a copy of the License at 28 * 29 * http://www.apache.org/licenses/LICENSE-2.0 30 * 31 * Unless required by applicable law or agreed to in writing, software 32 * distributed under the License is distributed on an "AS IS" BASIS, 33 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 34 * See the License for the specific language governing permissions and 35 * limitations under the License. 36 */ 37 import java.nio.charset.StandardCharsets; 38 39 /** Class containing constants for the STL file format. 40 */ 41 final class StlConstants { 42 43 /** Default STL charset. */ 44 static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8; 45 46 /** Keyword indicating the start of a solid. This is also the keyword used to indicate the 47 * start of a text (ASCII) STL file. 48 */ 49 static final String SOLID_START_KEYWORD = "solid"; 50 51 /** Keyword used to indicate the end of a solid definition. */ 52 static final String SOLID_END_KEYWORD = "endsolid"; 53 54 /** Keyword used to indicate the start of a facet. */ 55 static final String FACET_START_KEYWORD = "facet"; 56 57 /** Keyword used to indicate the end of a facet. */ 58 static final String FACET_END_KEYWORD = "endfacet"; 59 60 /** Keyword used to introduce a facet normal. */ 61 static final String NORMAL_KEYWORD = "normal"; 62 63 /** Keyword used when describing the outer vertex loop of a facet. */ 64 static final String OUTER_KEYWORD = "outer"; 65 66 /** Keyword used to indicate the start of a vertex loop. */ 67 static final String LOOP_START_KEYWORD = "loop"; 68 69 /** Keyword used to indicate the end of a vertex loop. */ 70 static final String LOOP_END_KEYWORD = "endloop"; 71 72 /** Keyword used to indicate a vertex definition. */ 73 static final String VERTEX_KEYWORD = "vertex"; 74 75 /** Number of bytes in the binary format header. */ 76 static final int BINARY_HEADER_BYTES = 80; 77 78 /** Number of bytes for each triangle in the binary format. */ 79 static final int BINARY_TRIANGLE_BYTES = 50; 80 81 /** Byte order for binary data. */ 82 static final ByteOrder BINARY_BYTE_ORDER = ByteOrder.LITTLE_ENDIAN; 83 84 /** Utility class; no instantiation. */ 85 private StlConstants() {} 86 }