Provides access to the Geometric Effect Interface.

#### Product Availability

#### When To Use

This interface must be implemented by all custom geometric effects along with IGraphicAttributes and IPersistVariant interfaces (or IPersist and IPersistStream in Visual Basic 6.0).

#### Members

Description |
||
---|---|---|

NextGeometry | Accesses the next geometry generated by th effect. | |

OutputType | The output type of the geometric effect. | |

Reset | Resets the collection of generated geometries. Must be called before using NextGeometry. |

#### CoClasses that implement IGeometricEffect

CoClasses and Classes | Description |
---|---|

BasicFillSymbol | Basic fill symbol object. |

BasicLineSymbol | Basic line symbol object. |

BasicMarkerSymbol | Basic marker symbol object. |

GeometricEffectAddControlPoints | Assigns control point status to line vertices. |

GeometricEffectArrow | Constructs an arrow of a given line. |

GeometricEffectBuffer | Constructs a buffer polygon from any type of geometry. |

GeometricEffectCut | Produces a shorter line based on distances at extremities. |

GeometricEffectDash | Generates a dashed/dotted line based on a template. |

GeometricEffectDonut | Inserts a hole into a polygon. |

GeometricEffectEnclosingPolygon | Constructs enclosing polgon. With multipoint input, constructs a polygon that encloses all points. |

GeometricEffectExtension | Extends a line by a given distance and deflection angle. |

GeometricEffectJog | Constructs an Jog effect on a given line. |

GeometricEffectMove | Applies a move transformation to a geometry. |

GeometricEffectOffset | Offsets a line by a specified distance. |

GeometricEffectOffsetTangent | Moves a line a given distance in the direction of one of its outermost segments. |

GeometricEffectRadial | Produces a line from a point, based on direction and length. |

GeometricEffectRegularPolygon | Creates a regular polygon from a point. |

GeometricEffectReverse | Reverses the direction of a line. |

GeometricEffectRotate | Applies a rotate transformation to a geometry. |

GeometricEffectScale | Applies a scale transformation to a geometry. |

GeometricEffectSimplify | Simplifies a geometry by eliminating vertices. |

GeometricEffectSmooth | Smooth a geometry by approximation with beziers. |

GeometricEffectSuppress | Suppresses part of a line or polygon outline. |

GeometricEffectTaperedPolygon | Creates a taper polygon from a line. |

GeometricEffectWave | Creates a regular wave from a curve. |

RepresentationRule | An object defining a representation rule. |

#### Remarks

**IGeometricEffect** interface has methods useful for defining a geometric effect. If you create a custom geometric effect, then **IGraphicAttributes** interface which will define the properties for this effect and **IPersistVariant** (VB users) or **IPersist** and **IPersistStream** (C++ users) to persist the object have to be implemented..

**OutputType **is the method used to retrieve the type of valid output geometry given with an input geometry type. For all invalid input geometry types this property will return esriGeometryNull.

**Reset **method is used to re-set the result of applying a geometric effect on an input geometry. **Next** method is used to retrieve the individual parts created after the effect is processed. Sometimes an effect may result in a multi-part output geometry. For example a Dash effect will usually give a multi-part output geometry as the result where each part can be retrieved using the Next method.

Note: Reset method has to be called prior to calling Next method.

**Geometric effect** is a dynamic process that alters the geometry of feature representations. Effects can be added to either a basic symbol layer or at a representation rule level making it globally applicable to all symbol layers present for that rule to create complex symbols. Also, a single representation rule can contain multiple geometric effects, functioning in sequence. When a single rule is applied with a chain of geometric effects, the end result of applying the chain of effects can be considered and managed as a single Geometric Effect. For this reason, representation rule and all basic symbol objects inherits both **IGeometricEffect** and **IGeometricEffects** interfaces. The result of geometric effects applied on a rule are directly passed onto all basic symbol layers present within the rule for drawing features.

While IGeometricEffects interface is useful to browse through individual effects participating in the rule, IGeometricEffect interface is useful to manage the chain of multiple effects as a single geometric effect. For example, if there are two geometric effects *GeometricEffectDash* and* GeometricEffectOffset* applied on linestrokes in sequential order, then you can use IGeometricEffects interface to get the results for individual Dash or Offset effects but not both. However, you can use IGeometricEffect interface to get the result of applying the combination of both Dash and Offset as a single effect.