# US 12,182,954 B2 · Synchronized editing of locally repeating vector geometry

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,954 B2
- Document ID: US12182954B2
- Status: Granted
- Kind: B2
- Application number: 17/703,187
- Filed: 2022-03-24
- Published: 2022-07-07
- Granted: 2024-12-31
- Earliest claimed: 2020-07-01
- Assignees: Adobe Inc.
- Applicants: Adobe Inc.
- Inventors: Vineet Batra; Ankit Phogat
- Web page: https://patentgrep.com/patent/US12182954B2

## CPC

- G06T 19/20: Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
- G06F 3/0482: Interaction with lists of selectable items, e.g. menus
- G06F 3/04845: for image manipulation, e.g. dragging, rotation, expansion or change of colour
- G06T 11/23: using straight lines or curves
- G06T 17/10: Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
- G06T 2219/2016: Rotation, translation, scaling
- G06T 2219/2021: Shape modification
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments are disclosed for synchronously editing locally repeating vector geometry. In particular, in one or more embodiments, the disclosed systems and methods comprise receiving a selection of a first plurality of segments of a vector-based object to be edited, generating a stencil mask of the first plurality of segments, the stencil mask representing segment placement and primitive types for each of the first plurality of segments, identifying a second plurality of segments of the vector-based object using the stencil mask and a stencil predicate, determining a transform between the first plurality of segments and the second plurality of segments, receiving an edit to the first plurality of segments, and applying the edit to the second plurality of segments using the transform.

## Claims

### Claim 1

A method of synchronized editing of vector geometry comprising:
receiving a vector object to be edited;
generating a stencil mask of a first plurality of line segments of the vector object, the stencil mask representing segment placement and primitive types;
identifying a match of the stencil mask to a second plurality of line segments of the vector object;
determining that an edit has been performed on the first plurality of line segments; and
synchronously editing the second plurality of line segments of the vector object based on the edit to the first plurality of line segments using a linear transform, wherein the linear transform defines a mapping from the first plurality of line segments at a first location on the vector object to the second plurality of line segments at a second location on the vector object, and wherein the linear transform indicates that the first plurality of line segments and the second plurality of line segments represent a repeating geometry.

### Claim 2 (depends on 1)

The method of claim 1, wherein identifying the match of the stencil mask to the second plurality of line segments comprises:
determining a set of line segments that are included in the second plurality of line segments but not included in the stencil mask; and
identifying the second plurality of line segments including the set of line segments that are included in the second plurality of line segments but not included in the stencil mask.

### Claim 3 (depends on 1)

The method of claim 1, wherein determining that an edit has been performed on the first plurality of line segments comprises:
receiving, from a user interface, a request to displace an anchor point or control point of the first plurality of line segments to a new position.

### Claim 4 (depends on 1)

The method of claim 1, wherein identifying a match of the stencil mask to a plurality of line segments comprises:
comparing one or more pluralities of line segments of the vector object to the stencil mask using a first anchor point of the vector object;
determining that the plurality of line segments of the one or more pluralities of line segments includes line segments that all match a primitive type and anchor point of the stencil mask; and
storing the plurality of line segments as a match.

### Claim 5 (depends on 4)

The method of claim 4, further comprising determining the linear transform between the first plurality of line segments and the second plurality of line segments.

### Claim 6 (depends on 1)

The method of claim 1, wherein identifying a match of the stencil mask to a plurality of line segments comprises:
comparing one or more pluralities of line segments of the vector object to the stencil mask using a first anchor point of the vector object;
determining that the plurality of line segments of the one or more pluralities of line segments includes a first set of line segments that match a primitive type and anchor point of the stencil mask and second set of line segments that do not match the primitive type or anchor point of the stencil mask; and
adjusting the stencil mask by one anchor point and performing an additional comparison.

### Claim 7 (depends on 2)

The method of claim 2, wherein the stencil mask indicates a selection status of a line segment and the primitive type of each line segment.

### Claim 8

A system comprising:
a memory component; and
a processing device coupled to the memory component, the processing device to perform operations comprising:
receiving a vector object to be edited;
generating a stencil mask of a first plurality of line segments of the vector object, the stencil mask representing segment placement and primitive types;
identifying a match of the stencil mask to a second plurality of line segments of the vector object;
determining that an edit has been performed on the first plurality of line segments; and
synchronously editing the second plurality of line segments of the vector object based on the edit to the first plurality of line segments using a linear transform, wherein the linear transform defines a mapping from the first plurality of line segments at a first location on the vector object to the second plurality of line segments at a second location on the vector object, and wherein the linear transform indicates that the first plurality of line segments and the second plurality of line segments represent a repeating geometry.

### Claim 9 (depends on 8)

The system of claim 8, wherein the operation of identifying the match of the stencil mask to the second plurality of line segments includes operations comprising:
determining a set of line segments that are included in the second plurality of line segments but not included in the stencil mask; and
identifying the second plurality of line segments including the set of line segments that are included in the second plurality of line segments but not included in the stencil mask.

### Claim 10 (depends on 8)

The system of claim 8, wherein the operation of determining that an edit has been performed on the first plurality of line segments includes operations comprising:
receiving, from a user interface, a request to displace an anchor point or control point of the first plurality of line segments to a new position.

### Claim 11 (depends on 8)

The system of claim 8, wherein the operation of identifying a match of the stencil mask to a plurality of line segments includes operations comprising:
comparing one or more pluralities of line segments of the vector object to the stencil mask using a first anchor point of the vector object;
determining that the plurality of line segments of the one or more pluralities of line segments includes line segments that all match a primitive type and anchor point of the stencil mask; and
storing the plurality of line segments as a match.

### Claim 12 (depends on 8)

The system of claim 8, the operations further comprising determining the linear transform between the first plurality of line segments and the second plurality of line segments.

### Claim 13 (depends on 8)

The system of claim 8, wherein the operation of identifying a match of the stencil mask to a plurality of line segments includes operations comprising:
comparing one or more pluralities of line segments of the vector object to the stencil mask using a first anchor point of the vector object;
determining that the plurality of line segments of the one or more pluralities of line segments includes a first set of line segments that match a primitive type and anchor point of the stencil mask and second set of line segments that do not match the primitive type or anchor point of the stencil mask; and
adjusting the stencil mask by one anchor point and performing an additional comparison.

### Claim 14 (depends on 8)

The system of claim 8, wherein the stencil mask indicates a selection status of a line segment and the primitive type of each line segment.

### Claim 15

A non-transitory computer-readable medium storing executable instructions, which when executed by a processing device, cause the processing device to perform operations comprising:
receiving a vector object to be edited;
generating a stencil mask of a first plurality of line segments of the vector object, the stencil mask representing segment placement and primitive types;
identifying a match of the stencil mask to a second plurality of line segments of the vector object;
determining that an edit has been performed on the first plurality of line segments; and
synchronously editing the second plurality of line segments of the vector object based on the edit to the first plurality of line segments using a linear transform, wherein the linear transform defines a mapping from the first plurality of line segments at a first location on the vector object to the second plurality of line segments at a second location on the vector object, and wherein the linear transform indicates that the first plurality of line segments and the second plurality of line segments represent a repeating geometry.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein instructions, which when executed by a processing device, cause the processing device to perform the operation of identifying the match of the stencil mask to the second plurality of line segments further cause the processing device to perform operations comprising:
determining a set of line segments that are included in the second plurality of line segments but not included in the stencil mask; and
identifying the second plurality of line segments including the set of line segments that are included in the second plurality of line segments but not included in the stencil mask.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein instructions, which when executed by a processing device, cause the processing device to perform the operation of determining that an edit has been performed on the first plurality of line segments further cause the processing device to perform operations comprising:
receiving, from a user interface, a request to displace an anchor point or control point of the first plurality of line segments to a new position.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein instructions, which when executed by a processing device, cause the processing device to perform the operation of identifying a match of the stencil mask to a plurality of line segments further cause the processing device to perform operations comprising:
comparing one or more pluralities of line segments of the vector object to the stencil mask using a first anchor point of the vector object;
determining that the plurality of line segments of the one or more pluralities of line segments includes line segments that all match a primitive type and anchor point of the stencil mask; and
storing the plurality of line segments as a match.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15, the operations further causing the processing device to perform operations comprising determining the linear transform between the first plurality of line segments and the second plurality of line segments.

### Claim 20 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein instructions, which when executed by a processing device, cause the processing device to perform the operation of identifying a match of the stencil mask to a plurality of line segments further cause the processing device to perform operations comprising:
comparing one or more pluralities of line segments of the vector object to the stencil mask using a first anchor point of the vector object;
determining that the plurality of line segments of the one or more pluralities of line segments includes a first set of line segments that match a primitive type and anchor point of the stencil mask and second set of line segments that do not match the primitive type or anchor point of the stencil mask; and
adjusting the stencil mask by one anchor point and performing an additional comparison.
