/* * citygml4j - The Open Source Java API for CityGML * https://github.com/citygml4j * * Copyright 2013-2017 Claus Nagel <claus.nagel@gmail.com> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.citygml4j.model.common.visitor; import org.citygml4j.model.citygml.core.LodRepresentation; import org.citygml4j.model.citygml.texturedsurface._TexturedSurface; import org.citygml4j.model.gml.geometry.aggregates.MultiCurve; import org.citygml4j.model.gml.geometry.aggregates.MultiGeometry; import org.citygml4j.model.gml.geometry.aggregates.MultiLineString; import org.citygml4j.model.gml.geometry.aggregates.MultiPoint; import org.citygml4j.model.gml.geometry.aggregates.MultiPolygon; import org.citygml4j.model.gml.geometry.aggregates.MultiSolid; import org.citygml4j.model.gml.geometry.aggregates.MultiSurface; import org.citygml4j.model.gml.geometry.complexes.CompositeCurve; import org.citygml4j.model.gml.geometry.complexes.CompositeSolid; import org.citygml4j.model.gml.geometry.complexes.CompositeSurface; import org.citygml4j.model.gml.geometry.complexes.GeometricComplex; import org.citygml4j.model.gml.geometry.primitives.Curve; import org.citygml4j.model.gml.geometry.primitives.LineString; import org.citygml4j.model.gml.geometry.primitives.LinearRing; import org.citygml4j.model.gml.geometry.primitives.OrientableCurve; import org.citygml4j.model.gml.geometry.primitives.OrientableSurface; import org.citygml4j.model.gml.geometry.primitives.Point; import org.citygml4j.model.gml.geometry.primitives.Polygon; import org.citygml4j.model.gml.geometry.primitives.Ring; import org.citygml4j.model.gml.geometry.primitives.Solid; import org.citygml4j.model.gml.geometry.primitives.Surface; import org.citygml4j.model.gml.geometry.primitives.Tin; import org.citygml4j.model.gml.geometry.primitives.TriangulatedSurface; import org.citygml4j.model.gml.grids.Grid; import org.citygml4j.model.gml.grids.RectifiedGrid; public interface GeometryFunctor<T> extends Functor<T> { public T apply(LodRepresentation lodRepresentation); public T apply(CompositeCurve compositeCurve); public T apply(CompositeSolid compositeSolid); public T apply(CompositeSurface compositeSurface); public T apply(Curve curve); public T apply(GeometricComplex geometricComplex); public T apply(Grid grid); public T apply(LinearRing linearRing); public T apply(LineString lineString); public T apply(MultiCurve multiCurve); public T apply(MultiLineString multiLineString); public T apply(MultiGeometry multiGeometry); public T apply(MultiPoint multiPoint); public T apply(MultiPolygon multiPolygon); public T apply(MultiSolid multiSolid); public T apply(MultiSurface multiSurface); public T apply(OrientableCurve orientableCurve); public T apply(OrientableSurface orientableSurface); public T apply(_TexturedSurface texturedSurface); public T apply(Point point); public T apply(Polygon polygon); public T apply(RectifiedGrid rectifiedGrid); public T apply(Ring ring); public T apply(Solid solid); public T apply(Surface surface); public T apply(Tin tin); public T apply(TriangulatedSurface triangulatedSurface); }