blob: 39cf5a9a6fe80b0262e0eb26a1066e7c03cc655a [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.types;
import org.apache.flex.swf.tags.ICharacterTag;
import org.apache.flex.swf.tags.CharacterIterableFactory;
/**
* A fill style represents how a closed shape is filled in.
*/
public class MorphFillStyle implements IFillStyle
{
private int fillStyleType; // Constants are defined in FillStyle.java
private RGBA startColor;
private RGBA endColor;
private Matrix startGradientMatrix;
private Matrix endGradientMatrix;
private MorphGradient gradient;
private ICharacterTag bitmap;
private Matrix startBitmapMatrix;
private Matrix endBitmapMatrix;
// MorphFillStyle for DefineMorphShape2
private int ratio1;
private int ratio2;
/**
* Get the type of fill style.
*
* @return fill style type
*/
public int getFillStyleType()
{
return fillStyleType;
}
/**
* Set the type of fill style.
*
* @param value fill style type
*/
public void setFillStyleType(int value)
{
fillStyleType = value;
}
/**
* Solid fill color with opacity information for start shape.
*
* @return the startColor
*/
public RGBA getStartColor()
{
return startColor;
}
/**
* Set solid fill color with opacity information for start shape.
*
* @param value the startColor to set
*/
public void setStartColor(RGBA value)
{
startColor = value;
}
/**
* Solid fill color with opacity information for end shape.
*
* @return the endColor
*/
public RGBA getEndColor()
{
return endColor;
}
/**
* Set solid fill color with opacity information for end shape.
*
* @param value the endColor to set
*/
public void setEndColor(RGBA value)
{
endColor = value;
}
/**
* Matrix for gradient fill for start shape.
*
* @return the startGradientMatrix
*/
public Matrix getStartGradientMatrix()
{
return startGradientMatrix;
}
/**
* Set matrix for gradient fill for start shape.
*
* @param value the startGradientMatrix to set
*/
public void setStartGradientMatrix(Matrix value)
{
startGradientMatrix = value;
}
/**
* Matrix for gradient fill for end shape.
*
* @return the endGradientMatrix
*/
public Matrix getEndGradientMatrix()
{
return endGradientMatrix;
}
/**
* Set matrix for gradient fill for end shape.
*
* @param value the endGradientMatrix to set
*/
public void setEndGradientMatrix(Matrix value)
{
endGradientMatrix = value;
}
/**
* Gradient fill.
*
* @return the gradient
*/
public MorphGradient getGradient()
{
return gradient;
}
/**
* Set gradient fill.
*
* @param value the gradient to set
*/
public void setGradient(MorphGradient value)
{
gradient = value;
}
/**
* Bitmap character for fill.
*
* @return the bitmap
*/
public ICharacterTag getBitmap()
{
return bitmap;
}
/**
* Set bitmap character for fill.
*
* @param bitmap the bitmap to set
*/
public void setBitmap(ICharacterTag bitmap)
{
this.bitmap = bitmap;
}
/**
* Matrix for bitmap fill for start shape.
*
* @return the startBitmapMatrix
*/
public Matrix getStartBitmapMatrix()
{
return startBitmapMatrix;
}
/**
* Set matrix for bitmap fill for start shape.
*
* @param value the startBitmapMatrix to set
*/
public void setStartBitmapMatrix(Matrix value)
{
startBitmapMatrix = value;
}
/**
* Matrix for bitmap fill for end shape.
*
* @return the endBitmapMatrix
*/
public Matrix getEndBitmapMatrix()
{
return endBitmapMatrix;
}
/**
* Set matrix for bitmap fill for end shape.
*
* @param value the endBitmapMatrix to set
*/
public void setEndBitmapMatrix(Matrix value)
{
endBitmapMatrix = value;
}
@Override
public Iterable<ICharacterTag> getReferences()
{
int fillStyle = getFillStyleType();
if (fillStyle == FillStyle.CLIPPED_BITMAP_FILL ||
fillStyle == FillStyle.NON_SMOOTHED_CLIPPED_BITMAP ||
fillStyle == FillStyle.NON_SMOOTHED_REPEATING_BITMAP ||
fillStyle == FillStyle.REPEATING_BITMAP_FILL)
{
assert bitmap != null;
return CharacterIterableFactory.from(bitmap);
}
return CharacterIterableFactory.empty();
}
/**
* TODO: ratio1 is not documented in the SWF 10 Specification.
*
* @return ratio1
*/
public int getRatio1()
{
return ratio1;
}
/**
* TODO: ratio1 is not documented in the SWF 10 Specification.
*/
public void setRatio1(int ratio1)
{
this.ratio1 = ratio1;
}
/**
* TODO: ratio2 is not documented in the SWF 10 Specification.
*
* @return ratio2
*/
public int getRatio2()
{
return ratio2;
}
/**
* TODO: ratio2 is not documented in the SWF 10 Specification.
*/
public void setRatio2(int ratio2)
{
this.ratio2 = ratio2;
}
}