/******************************************************************************* * Copyright 2010 Simon Mieth * * 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.kabeja.dxf.parser.table; import org.kabeja.common.View; import org.kabeja.dxf.parser.DXFValue; import org.kabeja.util.Constants; /** * @author <a href="mailto:simon.mieth@gmx.de">Simon Mieth</a> * */ public class DXFViewTableHandler extends AbstractTableHandler { public static final int GROUPCODE_NAME = 2; public static final int GROUPCODE_CENTER_X = 10; public static final int GROUPCODE_CENTER_Y = 20; public static final int GROUPCODE_CENTER_Z = 30; public static final int GROUPCODE_HEIGHT = 40; public static final int GROUPCODE_WIDTH = 41; public static final int GROUPCODE_VIEW_DIRECTION_X = 11; public static final int GROUPCODE_VIEW_DIRECTION_Y = 21; public static final int GROUPCODE_VIEW_DIRECTION_Z = 31; public static final int GROUPCODE_VIEW_TARGET_X = 12; public static final int GROUPCODE_VIEW_TARGET_Y = 22; public static final int GROUPCODE_VIEW_TARGET_Z = 32; public static final int GROUPCODE_LENS_LENGTH = 42; public static final int GROUPCODE_FRONT_CLIPPING = 43; public static final int GROUPCODE_BACK_CLIPPING = 44; public static final int GROUPCODE_TWIST_ANGLE = 50; public static final int GROUPCODE_RENDER_MODE = 281; public static final int GROUPCODE_UCS_ORIGIN_X = 110; public static final int GROUPCODE_UCS_ORIGIN_Y = 120; public static final int GROUPCODE_UCS_ORIGIN_Z = 130; public static final int GROUPCODE_UCS_X_AXIS_X = 111; public static final int GROUPCODE_UCS_X_AXIS_Y = 121; public static final int GROUPCODE_UCS_X_AXIS_Z = 131; public static final int GROUPCODE_UCS_Y_AXIS_X = 112; public static final int GROUPCODE_UCS_Y_AXIS_Y = 122; public static final int GROUPCODE_UCS_Y_AXIS_Z = 132; public static final int GROUPCODE_UCS_TYPE = 79; public static final int GROUPCODE_UCS_ELEVATION = 146; public static final int GROUPCODE_USE_UCS = 72; private View view; public void endParsing() { this.doc.addView(view); } /* (non-Javadoc) * @see org.kabeja.parser.table.DXFTableHandler#getTableKey() */ public String getTableType() { return Constants.TABLE_KEY_VIEW; } /* (non-Javadoc) * @see org.kabeja.parser.table.DXFTableHandler#parseGroup(int, org.kabeja.parser.DXFValue) */ public void parseGroup(int groupCode, DXFValue value) { switch (groupCode) { case GROUPCODE_CENTER_X: view.getCenterPoint().setX(value.getDoubleValue()); break; case GROUPCODE_CENTER_Y: view.getCenterPoint().setY(value.getDoubleValue()); break; case GROUPCODE_CENTER_Z: view.getCenterPoint().setZ(value.getDoubleValue()); break; case GROUPCODE_NAME: view.setName(value.getValue()); break; case GROUPCODE_WIDTH: view.setWidth(value.getDoubleValue()); break; case GROUPCODE_HEIGHT: view.setHeight(value.getDoubleValue()); break; case GROUPCODE_FRONT_CLIPPING: view.setFrontClipping(value.getDoubleValue()); break; case GROUPCODE_BACK_CLIPPING: view.setBackClipping(value.getDoubleValue()); break; case GROUPCODE_LENS_LENGTH: view.setLensLength(value.getDoubleValue()); break; case GROUPCODE_RENDER_MODE: view.setRenderMode(value.getIntegerValue()); break; case GROUPCODE_TWIST_ANGLE: view.setTwistAngle(value.getDoubleValue()); break; case GROUPCODE_USE_UCS: view.setUseUCS(value.getBooleanValue()); break; case GROUPCODE_UCS_ELEVATION: view.setUcsElevation(value.getDoubleValue()); break; case GROUPCODE_UCS_ORIGIN_X: view.getUcsOrigin().setX(value.getDoubleValue()); break; case GROUPCODE_UCS_ORIGIN_Y: view.getUcsOrigin().setY(value.getDoubleValue()); break; case GROUPCODE_UCS_ORIGIN_Z: view.getUcsOrigin().setZ(value.getDoubleValue()); break; case GROUPCODE_UCS_X_AXIS_X: view.getUcsXAxis().setX(value.getDoubleValue()); break; case GROUPCODE_UCS_X_AXIS_Y: view.getUcsXAxis().setY(value.getDoubleValue()); break; case GROUPCODE_UCS_X_AXIS_Z: view.getUcsXAxis().setZ(value.getDoubleValue()); break; case GROUPCODE_UCS_Y_AXIS_X: view.getUcsYAxis().setX(value.getDoubleValue()); break; case GROUPCODE_UCS_Y_AXIS_Y: view.getUcsYAxis().setY(value.getDoubleValue()); break; case GROUPCODE_UCS_Y_AXIS_Z: view.getUcsYAxis().setZ(value.getDoubleValue()); break; case GROUPCODE_UCS_TYPE: view.setUcsType(value.getIntegerValue()); break; } } /* (non-Javadoc) * @see org.kabeja.parser.table.DXFTableHandler#startParsing() */ public void startParsing() { view = new View(); } }