blob: 8890c76843ccc5183abadfe372c52b9eb3c90a48 [file] [log] [blame]
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.apache.flex.swf.tags;
import org.apache.flex.swf.TagType;
import org.apache.flex.swf.types.Rect;
/**
* Represents a <code>DefineMorphShape2</code> tag in a SWF file.
* <p>
* The DefineMorphShape2 tag extends the capabilities of DefineMorphShape by
* using a new morph line style record in the morph shape. MORPHLINESTYLE2
* allows the use of new types of joins and caps as well as scaling options and
* the ability to fill the strokes of the morph shape.
* <p>
* DefineMorphShape2 specifies not only the shape bounds but also the edge
* bounds of the shape. While the shape bounds are calculated along the outside
* of the strokes, the edge bounds are taken from the outside of the edges. For
* an example of shape bounds versus edge bounds, see the diagram in
* DefineShape4. The new StartEdgeBounds and EndEdgeBounds fields assist Flash
* Player in accurately determining certain layouts.
* <p>
* In addition, DefineMorphShape2 includes new hinting information,
* UsesNonScalingStrokes and UsesScalingStrokes. These flags assist Flash Player
* in creating the best possible area for invalidation.
*/
public class DefineMorphShape2Tag extends DefineMorphShapeTag
{
/**
* Constructor.
*/
public DefineMorphShape2Tag()
{
super(TagType.DefineMorphShape2);
}
private Rect startEdgeBounds;
private Rect endEdgeBounds;
private boolean usesNonScalingStrokes;
private boolean usesScalingStrokes;
/**
* Bounds of the start shape, excluding strokes.
*
* @return the startEdgeBounds
*/
public Rect getStartEdgeBounds()
{
return startEdgeBounds;
}
/**
* Set start edge bounds.
*
* @param value the startEdgeBounds to set
*/
public void setStartEdgeBounds(Rect value)
{
startEdgeBounds = value;
}
/**
* Bounds of the end shape, excluding strokes.
*
* @return the endEdgeBounds
*/
public Rect getEndEdgeBounds()
{
return endEdgeBounds;
}
/**
* Set end edge bounds.
*
* @param value the endEdgeBounds to set
*/
public void setEndEdgeBounds(Rect value)
{
endEdgeBounds = value;
}
/**
* If true, the shape contains at least one non-scaling stroke.
*
* @return the usesNonScalingStrokes
*/
public boolean isUsesNonScalingStrokes()
{
return usesNonScalingStrokes;
}
/**
* Set uses non-scaling strokes.
*
* @param value the usesNonScalingStrokes to set
*/
public void setUsesNonScalingStrokes(boolean value)
{
usesNonScalingStrokes = value;
}
/**
* If true, the shape contains at least one scaling stroke.
*
* @return the usesSCalingStrokes
*/
public boolean isUsesScalingStrokes()
{
return usesScalingStrokes;
}
/**
* Set uses scaling strokes.
*
* @param value the usesSCalingStrokes to set
*/
public void setUsesScalingStrokes(boolean value)
{
usesScalingStrokes = value;
}
}