You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by vh...@apache.org on 2001/02/17 01:53:37 UTC
cvs commit: xml-batik/sources/org/apache/batik/bridge SVGMarkerElementBridge.java SVGPatternElementBridge.java
vhardy 01/02/16 16:53:36
Modified: sources/org/apache/batik/bridge SVGMarkerElementBridge.java
SVGPatternElementBridge.java
Log:
a. Pattern and Marker bridges now use convertOverflow
b. Marker bridge now uses convertClip to handle the overflow property.
Revision Changes Path
1.4 +22 -19 xml-batik/sources/org/apache/batik/bridge/SVGMarkerElementBridge.java
Index: SVGMarkerElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGMarkerElementBridge.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGMarkerElementBridge.java 2001/02/06 09:30:57 1.3
+++ SVGMarkerElementBridge.java 2001/02/17 00:53:32 1.4
@@ -40,7 +40,7 @@
* Turns a marker element into a <tt>Marker</tt> object
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
- * @version $Id: SVGMarkerElementBridge.java,v 1.3 2001/02/06 09:30:57 tkormann Exp $
+ * @version $Id: SVGMarkerElementBridge.java,v 1.4 2001/02/17 00:53:32 vhardy Exp $
*/
public class SVGMarkerElementBridge implements MarkerBridge {
/**
@@ -226,23 +226,12 @@
}
// Extract the overflow property
- CSSPrimitiveValue vbOverflow =
- (CSSPrimitiveValue)cssDecl.getPropertyCSSValue(CSS_OVERFLOW_PROPERTY);
+ boolean overflowIsHidden = CSSUtilities.convertOverflow(markerElement);
- String overFlowValue = vbOverflow.getStringValue();
- if(overFlowValue.length() == 0){
- overFlowValue = CSS_HIDDEN_VALUE;
- }
-
- boolean overflow = true;
- if(CSS_HIDDEN_VALUE.equals(overFlowValue)){
- overflow = false;
- }
-
// Extract the marker units
s = inst.getAttributeNS(null,
- SVG_MARKER_UNITS_ATTRIBUTE);
-
+ SVG_MARKER_UNITS_ATTRIBUTE);
+
if (s.length() == 0) {
s = SVG_DEFAULT_VALUE_MARKER_MARKER_UNITS;
}
@@ -303,10 +292,24 @@
// Set the markerContentNode's clipping area
// depending on the overflow property
//
- if(overflow == false){
- Rectangle2D markerClip
- = new Rectangle2D.Float(0, 0, strokeWidth*markerWidth,
- strokeWidth*markerHeight);
+ if(overflowIsHidden == true){
+ float[] offsets = CSSUtilities.convertClip(markerElement);
+ Rectangle2D markerClip = null;
+ if(offsets == null){ // auto
+ markerClip
+ = new Rectangle2D.Float(0, 0, strokeWidth*markerWidth,
+ strokeWidth*markerHeight);
+ }
+ else{
+ // offsets[0] = top
+ // offsets[1] = right
+ // offsets[2] = bottom
+ // offsets[3] = left
+ markerClip = new Rectangle2D.Float(offsets[3],
+ offsets[0],
+ strokeWidth*markerWidth - offsets[1],
+ strokeWidth*markerHeight - offsets[2]);
+ }
CompositeGraphicsNode newMarkerContentNode
= new CompositeGraphicsNode();
1.14 +5 -15 xml-batik/sources/org/apache/batik/bridge/SVGPatternElementBridge.java
Index: SVGPatternElementBridge.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGPatternElementBridge.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- SVGPatternElementBridge.java 2001/02/16 16:42:18 1.13
+++ SVGPatternElementBridge.java 2001/02/17 00:53:33 1.14
@@ -47,7 +47,7 @@
* a <tt>PatternPaint</tt>
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
- * @version $Id: SVGPatternElementBridge.java,v 1.13 2001/02/16 16:42:18 tkormann Exp $
+ * @version $Id: SVGPatternElementBridge.java,v 1.14 2001/02/17 00:53:33 vhardy Exp $
*/
public class SVGPatternElementBridge implements PaintBridge, SVGConstants {
@@ -189,22 +189,12 @@
patternTransform = new AffineTransform();
}
- // Get the overflow property on the pattern element
CSSStyleDeclaration cssDecl
= CSSUtilities.getComputedStyle(paintElement);
-
- CSSPrimitiveValue vbOverflow =
- (CSSPrimitiveValue)cssDecl.getPropertyCSSValue(CSS_OVERFLOW_PROPERTY);
- String overFlowValue = vbOverflow.getStringValue();
- if(overFlowValue.length() == 0){
- overFlowValue = CSS_HIDDEN_VALUE;
- }
+ // Get the overflow property on the pattern element
+ boolean overflowIsHidden = CSSUtilities.convertOverflow(paintElement);
- boolean overflow = true;
- if(CSS_HIDDEN_VALUE.equals(overFlowValue)){
- overflow = false;
- }
// Get pattern region. This is from the paintedElement, as
// percentages are from the referencing element.
@@ -265,7 +255,7 @@
AffineTransform nodeTransform = null;
if(hasViewBox){
nodeTransform = preserveAspectRatioTransform;
- if(!overflow){
+ if(overflowIsHidden){
// Need to do clipping
CompositeGraphicsNode newPatternContentNode
= new CompositeGraphicsNode();
@@ -321,7 +311,7 @@
rc,
nodeTransform,
patternRegion,
- overflow,
+ !overflowIsHidden,
patternTransform);
return paint;