2
* =========================================================================
3
* This file is part of the JLaTeXMath Library - http://forge.scilab.org/jlatexmath
5
* Copyright (C) 2009 DENIZET Calixte
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; either version 2 of the License, or (at
10
* your option) any later version.
12
* This program is distributed in the hope that it will be useful, but
13
* WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* General Public License for more details.
17
* A copy of the GNU General Public License can be found in the file
18
* LICENSE.txt provided with the source distribution of this program (see
19
* the META-INF directory in the source jar). This license can also be
20
* found on the GNU website at http://www.gnu.org/licenses/gpl.html.
22
* If you did not receive a copy of the GNU General Public License along
23
* with this program, contact the lead developer, or write to the Free
24
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
29
package org.scilab.forge.jlatexmath;
31
import java.awt.Graphics2D;
34
* A box representing a rotated box.
36
public class RotateBox extends Box {
38
protected double angle = 0;
40
private float xmax, xmin, ymax, ymin;
42
public RotateBox(Box b, double angle) {
44
angle = angle * Math.PI / 180;
49
float s = (float)Math.sin(angle);
50
float c = (float)Math.cos(angle);
51
xmax = Math.max(-height*s, Math.max(depth*s, Math.max(width*c+depth*s,width*c-height*s)));
52
xmin = Math.min(-height*s, Math.min(depth*s, Math.min(width*c+depth*s,width*c-height*s)));
53
ymax = Math.max(height*c, Math.max(-depth*c, Math.max(width*s-depth*c,width*s+height*c)));
54
ymin = Math.min(height*c, Math.min(-depth*c, Math.min(width*s-depth*c,width*s+height*c)));
60
public void draw(Graphics2D g2, float x, float y) {
62
g2.rotate(-angle, x, y);
64
g2.rotate(angle, x, y);
67
public int getLastFontId() {
68
return box.getLastFontId();