DrawKit
Vector and illustration framework for Mac OS X
Instance Methods | List of all members
DKRoughStroke Class Reference

DKRoughStroke is a stroke rasterizer that randomly varies the stroke width about its nominal set width by some factor. More...

Inheritance diagram for DKRoughStroke:
Inheritance graph
[legend]

Instance Methods

(void) - invalidateCache
 
(NSString *) - pathKeyForPath:
 
(CGFloat- roughness
 
(NSBezierPath *) - roughPathFromPath:
 
(void) - setRoughness:
 
- Instance Methods inherited from DKStroke
(CGFloat- allowance
 
(void) - applyAttributesToPath:
 
(NSColor *) - colour
 
(DKStrokeDash *) - dash
 
(NSSize) - extraSpaceNeededIgnoringMitreLimit
 
(id- initWithWidth:colour:
 
(CGFloat- lateralOffset
 
(NSLineCapStyle) - lineCapStyle
 
(NSLineJoinStyle) - lineJoinStyle
 
(CGFloat- miterLimit
 
(void) - scaleWidthBy:
 
(void) - setAutoDash
 
(void) - setColour:
 
(void) - setDash:
 
(void) - setLateralOffset:
 
(void) - setLineCapStyle:
 
(void) - setLineJoinStyle:
 
(void) - setMiterLimit:
 
(void) - setShadow:
 
(void) - setTrimLength:
 
(void) - setWidth:
 
(NSShadow *) - shadow
 
(void) - strokeRect:
 
(CGFloat- trimLength
 
(CGFloat- width
 
- Instance Methods inherited from DKRasterizer
(DKClippingOption) - clipping
 Whether the rasterizer's effect is clipped to the path or not, and if so, which side. More...
 
(DKRastGroup *) - container
 Returns the immediate container of this object, if owned by a group. More...
 
(BOOL- copyToPasteboard:
 
(BOOL- enabled
 
(BOOL- isValid
 
(NSString *) - label
 
(NSString *) - name
 
(NSBezierPath *) - renderingPathForObject:
 Returns the path to render given the object doing the rendering. More...
 
(void) - setClipping:
 
(void) - setClippingWithoutNotifying:
 
(void) - setContainer:
 Sets the immediate container of this object. More...
 
(void) - setEnabled:
 
(void) - setName:
 
(NSString *) - styleScript
 
- Instance Methods inherited from GCObservableObject
(NSString *) - actionNameForKeyPath:
 
(NSString *) - actionNameForKeyPath:changeKind:
 
(NSArray *) - oldArrayValueForKeyPath:
 
(void) - registerActionNames
 
(void) - sendInitialValuesForAllPropertiesToObserver:context:
 
(void) - setActionName:forKeyPath:
 
(BOOL- setUpKVOForObserver:
 
(void) - setUpObservables:forObserver:
 
(BOOL- tearDownKVOForObserver:
 
(void) - tearDownObservables:forObserver:
 
- Instance Methods inherited from NSObject
(NSString *) - address
 
(DKStyleRegistry *) - applicationWillReturnStyleRegistry
 
(BOOL- canBeUsedWithSelectionTool
 
(id- categoryManager:shouldReplaceObject:withObject:
 
(Class- classForCoder
 
(NSColor *) - colorValue
 
(NSColor *) - colourValue
 
(id- copy
 
(void) - dealloc
 
(id- deepCopy
 
(NSDictionary *) - dimensionValuesForArrowStroke:
 
(CGFloat- drawing:convertDistanceToExternalCoordinates:
 
(NSPoint) - drawing:convertLocationToExternalCoordinates:
 
(void) - drawing:didDrawRect:inView:
 
(void) - drawing:willDrawRect:inView:
 
(NSString *) - drawing:willReturnAbbreviationForUnit:
 
(NSString *) - drawing:willReturnFormattedCoordinateForDistance:
 
(CGFloat- drawingWillReturnUnitToPointsConversonFactor:
 
(void) - finalize
 
(NSString *) - hexString
 
(void) - hotspot:didEndTrackingWithEvent:inView:
 
(void) - hotspot:isTrackingWithEvent:inView:
 
(void) - hotspot:willBeginTrackingWithEvent:inView:
 
(NSData *) - imageData
 
(NSImage *) - imageResourceNamed:
 
(id- init
 
(id- initWithExpression:
 
(id- instantiateObjectWithShortName:parameters:
 
(BOOL- isLiteralValue
 
(void) - layoutManager:willPlaceGlyphAtIndex:atLocation:pathAngle:yOffset:
 
(void) - menuItem:wasAddedForObject:inCategory:
 
(BOOL- moveObjectTo:position:slope:userInfo:
 
(id- mutableCopy
 
(void) - oneShotComplete
 
(void) - oneShotHasReached:
 
(void) - oneShotWillBegin
 
(void) - path:elementIndex:type:points:subPathIndex:subPathClosed:contextInfo:
 
(id- placeLinkFromPoint:toPoint:onPath:linkNumber:userInfo:
 
(id- placeObjectAtPoint:onPath:position:slope:userInfo:
 
(NSPoint) - point
 
(NSPoint) - pointForTextLayout
 
(DKStyle *) - registry:shouldReplaceStyle:withStyle:
 
(NSBezierPath *) - renderer:willRenderPath:
 
(void) - routeFinder:progressHasReached:
 
(void) - setValue:forNumericParameter:
 
(NSString *) - stringValue
 
(CGFloat- taperFactorAtDistance:onPath:ofLength:
 
(void) - toolDidPerformUndoableAction:
 
(void) - toolWillPerformUndoableAction:
 
(NSURL *) - url
 
- Instance Methods inherited from <NSObject>
(NSString *) - description
 
(NSUInteger- hash
 
(BOOL- isEqual:
 
- Instance Methods inherited from <NSKeyValueBindingCreation>
(void) - bind:toObject:withKeyPath:options:
 
(NSArray *) - exposedBindings
 
(NSDictionary *) - infoForBinding:
 
(NSArray *) - optionDescriptionsForBinding:
 
(void) - unbind:
 
(Class- valueClassForBinding:
 
- Instance Methods inherited from <DKRasterizer>
(NSSize) - extraSpaceNeeded
 
(BOOL- isFill
 
(void) - render:
 
(void) - renderPath:
 
- Instance Methods inherited from <NSCoding>
(void) - encodeWithCoder:
 
(id- initWithCoder:
 
- Instance Methods inherited from <NSCopying>
(id- copyWithZone:
 

Additional Inherited Members

- Class Methods inherited from DKStroke
(DKStroke *) + defaultStroke
 
(DKStroke *) + strokeWithWidth:colour:
 
- Class Methods inherited from DKRasterizer
(DKRasterizer *) + rasterizerFromPasteboard:
 
- Class Methods inherited from GCObservableObject
(NSString *) + actionNameForKeyPath:objClass:
 
(NSArray *) + observableKeyPaths
 
(void) + registerActionName:forKeyPath:objClass:
 
- Class Methods inherited from NSObject
(id+ alloc
 
(Class+ class
 
(void) + initialize
 
(void) + load
 
(id+ new
 
- Class Methods inherited from <NSKeyValueBindingCreation>
(void) + exposeBinding:
 
- Protected Attributes inherited from DKStroke
CGFloat m_width
 

Detailed Description

DKRoughStroke is a stroke rasterizer that randomly varies the stroke width about its nominal set width by some factor.

Author
Contributions from the community; see CONTRIBUTORS.md
Date
2005-2015

DKRoughStroke is a stroke rasterizer that randomly varies the stroke width about its nominal set width by some factor. The result is a rough stroke that looks much more naturalistic than a standard one, which is very useful for illustration work.

The nominal width, colour, etc are all inherited from DKStroke. <roughness> is the amount of randomness and is a fraction of the stroke width.

Because a roughened path is both fairly complicated to compute and has a lot of randomness that is different every time, this object caches the roughened paths it generates and re-uses them as much as it can. A path is cached based on its bounds, width and length, giving a key that is likely to be unique in practice. Paths are cached up to the maximum number set by the constant, after which least used cached paths are discarded.

Method Documentation

- (void) invalidateCache
- (NSString*) pathKeyForPath: (NSBezierPath *)  path
- (CGFloat) roughness
- (NSBezierPath*) roughPathFromPath: (NSBezierPath *)  path
- (void) setRoughness: (CGFloat roughness