You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GraphicsFullArc.java 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. /* $Id$ */
  18. package org.apache.fop.afp.goca;
  19. import java.io.IOException;
  20. import java.io.OutputStream;
  21. import org.apache.fop.afp.util.BinaryUtils;
  22. /**
  23. * A GOCA graphics arc (circle/ellipse)
  24. */
  25. public class GraphicsFullArc extends AbstractGraphicsCoord {
  26. /** the integer portion of the multiplier */
  27. private final int mh;
  28. /** the fractional portion of the multiplier */
  29. private final int mhr;
  30. /**
  31. * Constructor
  32. *
  33. * @param x the x coordinate of the center of the circle/ellipse
  34. * @param y the y coordinate of the center of the circle/ellipse
  35. * @param mh the integer portion of the multiplier
  36. * @param mhr the fractional portion of the multiplier
  37. */
  38. public GraphicsFullArc(int x, int y, int mh, int mhr) {
  39. super(x, y);
  40. this.mh = mh;
  41. this.mhr = mhr;
  42. }
  43. /** {@inheritDoc} */
  44. public int getDataLength() {
  45. return 8;
  46. }
  47. /** {@inheritDoc} */
  48. byte getOrderCode() {
  49. return (byte)0xC7;
  50. }
  51. /** {@inheritDoc} */
  52. public void writeToStream(OutputStream os) throws IOException {
  53. byte[] data = getData();
  54. // integer portion of multiplier
  55. data[6] = BinaryUtils.convert(mh, 1)[0];
  56. // fractional portion of multiplier
  57. data[7] = BinaryUtils.convert(mhr, 1)[0];
  58. os.write(data);
  59. }
  60. /** {@inheritDoc} */
  61. public String toString() {
  62. return "GraphicsFullArc{"
  63. + ", centerx=" + coords[0]
  64. + ", centery=" + coords[1]
  65. + ", mh=" + mh
  66. + ", mhr=" + mhr
  67. + "}";
  68. }
  69. }