001/* 002 * Renderer 4. The MIT License. 003 * Copyright (c) 2022 rlkraft@pnw.edu 004 * See LICENSE for details. 005*/ 006 007package renderer.scene.util; 008 009import renderer.scene.Model; 010 011/** 012 A {@link Model} that implements {@code MeshMaker} can 013 rebuild its geometric mesh with different values for 014 the number of lines of latitude and longitude while 015 keeping all the other model parameters unchanged. 016*/ 017public interface MeshMaker 018{ 019 /** 020 @return the number of lines of latitude that the {@link Model} contains 021 */ 022 public int getHorzCount(); 023 024 /** 025 @return the number of lines of longitude that the {@link Model} contains 026 */ 027 public int getVertCount(); 028 029 /** 030 Build an instance of the {@link Model} with new values for the number 031 of lines of latitude and longitude while keeping all the other model 032 parameters the same. 033 034 @param n number of lines of latitude for the returned {@link Model} 035 @param k number of lines of longitude for the returned {@link Model} 036 @return a new instance of the {@link Model} with the updated parameters 037 */ 038 public Model remake(int n, int k); 039}