Patentable/Patents/US-6507348
US-6507348

Method and apparatus for clipping an object element in accordance with a clip volume

PublishedJanuary 14, 2003
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A method and apparatus for clipping an object element include processing that begins by ascribing barycentric coordinates to each original vertices of an object-element wherein each barycentric coordinate is a weighting factor with respect to a corresponding original vertex. The processing continues by obtaining clipping distances for each original vertex with respect to a clipping plane. For a new vertex of an object-element that represents an intersection of an edge of the object-element with the clipping plane, the process continues by determining a barycentric coordinate for the new vertex. The determination of the new vertex is based on the barycentric coordinates of the original vertices defining the edge and the clipping distances. Having determined the barycentric coordinates for the new vertices corresponding to a clipping plane, the process is repeated for each of a plurality of other clipping planes that intersect the object-element. Once all of the clipping planes have been processed, the attributes for the resulting clipped object element are calculated based on the barycentric coordinates of the vertices defining the clipped object element and the attributes of the original vertices.

Patent Claims
28 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for clipping an object element in accordance with a clip volume, the method comprises the steps of: a) ascribing barycentric coordinates to each original vertices of an object element, wherein each barycentric coordinate is a weighting factor with respect to a corresponding vertex; b) obtaining clipping distances for each original vertices with respect to a clipping plane; for a new vertex of the object element that represents an intersection of an edge of the object element with the clipping plane: c) determining a new barycentric coordinate for the new vertex based on the barycentric coordinates of the original vertices defining the edge and the clipping distances.

2

2. The method of claim 1 further comprises defining the object element based on the new vertex and each original vertices within the clip volume with respect to the clipping plane to produce a newly defined object element.

3

3. The method of claim 2 , wherein the clipping plane is one of six clipping planes of the clip volume or one of six user defined clipping planes, the method further comprises: determining whether another clipping plane of the six clipping planes or of the six user defined clipping planes intersects an edge of the newly defined object element; obtaining new clipping distances for each vertices of the newly defined object element with respect to the another clipping plane; when the another plane of six clipping planes or the six user defined clipping planes intersects the edge the newly defined object element, determining another new barycentric coordinate for another new vertex based on the barycentric coordinates of the original vertices defining the edge and the new clipping distances, wherein the another new vertex of the object element that represents an intersection of the edge of the newly defined object element with the another clipping plane; and defining the newly defined object element based on the another new vertex, the new vertex, and each original vertices within the clip volume with respect to the clipping plane and the another clipping plane to produce another newly defined object element.

4

4. The method of claim 3 further comprises repeating the determining whether another clipping plane intersects an edge of the another newly defined object element step, the obtaining new clipping distances step, the determining another new barycentric coordinate step, and the defining step until a final defined object element is obtained.

5

5. The method of claim 4 further comprises calculating attributes of the final defined object element based on the barycentric coordinates defining the final defined object element and the attributes of each of the original vertices.

6

6. The method of claim 5 , wherein the attributes comprise at least one of: vertex coordinates (x,y,z,w), color components, specular color components, fog components, and texture coordinates.

7

7. The method of claim 5 further comprises providing the attributes of the final defined object element to a barycentric controller without storing the attributes of the final defined object element.

8

8. The method of claim 1 , wherein step (c) further comprises determining each component of the new barycentric coordinate, wherein the components of the new barycentric coordinates includes an A, B, and C component, wherein the clipping distances includes D 1 for a first one of the original vertices defining the edge and D 2 for a second one of the original vertices defining the edge, wherein the first one of the original vertices includes an A 1 , B 1 , and C 1 component and the second one of the original vertices includes an A 2 , B 2 , and C 2 component, and wherein the determining for the A component equals A 1 * D 2 /(D 1 D 2 ) A 2 * D 1 /(D 1 D 2 ) .

9

9. A method for clipping an object element in accordance with a clip volume, the method comprises the steps of: a) obtaining barycentric coordinates of vertices of an edge of an object element, wherein each barycentric coordinate is a weighting factor with respect to a corresponding vertex and wherein the edge intersects with a clipping plane; b) obtaining clipping distances for the vertices with respect to the clipping plane; for a new vertex of the object element that represents an intersection of the edge with the clipping plane: c) determining a new barycentric coordinate for the new vertex based on the barycentric coordinates of the vertices and the clipping distances for the vertices.

10

10. The method of claim 9 further comprises defining the object element based on the new vertex and each original vertices within the clip volume with respect to the clipping plane to produce a newly defined object element.

11

11. The method of claim 10 , wherein the clipping plane is one of six clipping planes of the clip volume or one of six user defined clipping planes, wherein the method further comprises: determining whether another clipping plane of the six clipping planes or of the six user defined clipping planes intersects an edge of the newly defined object element; obtaining new clipping distances for each vertices of the newly defined object element with respect to the another clipping plane; when the another plane of six clipping planes or the six user defined clipping planes intersects the edge the newly defined object element, determining another new barycentric coordinate for another new vertex based on the barycentric coordinates of the original vertices defining the edge and the new clipping distances, wherein the another new vertex of the object element that represents an intersection of the edge of the newly defined object element with the another clipping plane; and defining the newly defined object element based on the another new vertex, the new vertex, and each original vertices within the clip volume with respect to the clipping plane and the another clipping plane to produce another newly defined object element.

12

12. The method of claim 11 further comprises repeating the determining whether another clipping plane intersects an edge of the another newly defined object element step, the obtaining new clipping distances step, the determining another new barycentric coordinate step, and the defining step until a final defined object element is obtained.

13

13. The method of claim 12 further comprises calculating attributes of the final defined object element based on the barycentric coordinates defining the final defined object element and the attributes of each of the original vertices.

14

14. The method of claim 12 further comprises providing the attributes of the final defined object element to a barycentric controller without storing the attributes of the final defined object element.

15

15. The method of claim 9 , wherein step (c) further comprises determining each component of the new barycentric coordinate, wherein the components of the new barycentric coordinates includes an A, B, and C component, wherein the clipping distances includes D 1 for a first one of the original vertices defining the edge and D 2 for a second one of the original vertices defining the edge, wherein the first one of the original vertices includes an A 1 , B 1 , and C 1 component and the second one of the original vertices includes an A 2 , B 2 , and C 2 component, and wherein the determining for the A component equals A 1 * D 2 /(D 1 D 2 ) A 2 * D 1 /(D 1 D 2 ) .

16

16. An apparatus for clipping an object element in accordance with a clip volume, the apparatus comprises: a processing module; and memory operably coupled to the processing module, wherein the memory stores operational instructions that cause the processing module to: ascribe barycentric coordinates to each original vertices of an object element, wherein each barycentric coordinate is a weighting factor with respect to a corresponding vertex; obtain clipping distances for each original vertices with respect to a clipping plane; and for a new vertex of the object element that represents an intersection of an edge of the object element with the clipping plane, determine a new barycentric coordinate for the new vertex based on the barycentric coordinates of the original vertices defining the edge and the clipping distances.

17

17. The apparatus of claim 16 , wherein the memory further comprises operational instructions that cause the processing module to define the object element based on the new vertex and each original vertices within the clip volume with respect to the clipping plane to produce a newly defined object element.

18

18. The apparatus of claim 17 , wherein the memory further comprises operational instructions that cause the processing module to, wherein the clipping plane is one of six clipping planes of the clip volume or one of six user defined clipping planes: determine whether another clipping plane of the six clipping planes or of the six user defined clipping planes intersects an edge of the newly defined object element; obtain new clipping distances for each vertices of the newly defined object element with respect to the another clipping plane; when the another plane of six clipping planes or the six user defined clipping planes intersects the edge the newly defined object element, determine another new barycentric coordinate for another new vertex based on the barycentric coordinates of the original vertices defining the edge and the new clipping distances, wherein the another new vertex of the object element that represents an intersection of the edge of the newly defined object element with the another clipping plane; and define the newly defined object element based on the another new vertex, the new vertex, and each original vertices within the clip volume with respect to the clipping plane and the another clipping plane to produce another newly defined object element.

19

19. The apparatus of claim 18 , wherein the memory further comprises operational instructions that cause the processing module to repeat the determining whether another clipping plane intersects an edge of the another newly defined object element step, the obtaining new clipping distances step, the determining another new barycentric coordinate step, and the defining step until a final defined object element is obtained.

20

20. The apparatus of claim 19 , wherein the memory further comprises operational instructions that cause the processing module to calculate attributes of the final defined object element based on the barycentric coordinates defining the final defined object element and the attributes of each of the original vertices.

21

21. The apparatus of claim 16 , wherein the memory further comprises operational instructions that cause the processing module to determine a new barycentric coordinate for the new vertex by: determining each component of the new barycentric coordinate , wherein the components of the new barycentric coordinates includes an A, B, and C component, wherein the clipping distances includes D 1 for a first one of the original vertices defining the edge and D 2 for a second one of the original vertices defining the edge, wherein the first one of the original vertices includes an A 1 , B 1 , and C 1 component and the second one of the original vertices includes an A 2 , B 2 , and C 2 component, and wherein the determining for the A component equals A 1 * D 2 /(D 1 D 2 ) A 2 * D 1 /(D 1 D 2 ) .

22

22. An apparatus for clipping an object element in accordance with a clip volume, the apparatus comprises: a processing module; and memory operably coupled to the processing module, wherein the memory stores operational instructions that cause the processing module to: obtain barycentric coordinates of vertices of an edge of an object element, wherein each barycentric coordinate is a weighting factor with respect to a corresponding vertex and wherein the edge intersects with a clipping plane; obtain clipping distances for the vertices with respect to the clipping plane; and for a new vertex of the object element that represents an intersection of the edge with the clipping plane, determine a new barycentric coordinate for the new vertex based on the barycentric coordinates of the vertices and the clipping distances for the vertices.

23

23. The apparatus of claim 22 , wherein the memory further comprises operational instructions that cause the processing module to define the object element based on the new vertex and each original vertices within the clip volume with respect to the clipping plane to produce a newly defined object element.

24

24. The apparatus of claim 23 , wherein the memory further comprises operational instructions that cause the processing module to, wherein the clipping plane is one of six clipping planes of the clip volume or one of six user defined clipping planes: determine whether another clipping plane of the six clipping planes or of the six user defined clipping planes intersects an edge of the newly defined object element; obtain new clipping distances for each vertices of the newly defined object element with respect to the another clipping plane; when the another plane of six clipping planes or the six user defined clipping planes intersects the edge the newly defined object element, determine another new barycentric coordinate for another new vertex based on the barycentric coordinates of the original vertices defining the edge and the new clipping distances, wherein the another new vertex of the object element that represents an intersection of the edge of the newly defined object element with the another clipping plane; and define the newly defined object element based on the another new vertex, the new vertex, and each original vertices within the clip volume with respect to the clipping plane and the another clipping plane to produce another newly defined object element.

25

25. The apparatus of claim 24 , wherein the memory further comprises operational instructions that cause the processing module to repeat the determining whether another clipping plane intersects an edge of the another newly defined object element step, the obtaining new clipping distances step, the determining another new barycentric coordinate step, and the defining step until a final defined object element is obtained.

26

26. The apparatus of claim 25 , wherein the memory further comprises operational instructions that cause the processing module to calculate attributes of the final defined object element based on the barycentric coordinates defining the final defined object element and the attributes of each of the original vertices.

27

27. The apparatus of claim 26 , wherein the memory further comprises operational instructions that cause the processing module to provide the attributes of the final defined object element to a barycentric controller without storing the attributes of the final defined object element.

28

28. The apparatus of claim 22 , wherein the memory further comprises operational instructions that cause the processing module to determine a new barycentric coordinate for the new vertex by: determining each component of the new barycentric coordinate, wherein the components of the new barycentric coordinates includes an A, B, and C component, wherein the clipping distances includes D 1 for a first one of the original vertices defining the edge and D 2 for a second one of the original vertices defining the edge, wherein the first one of the original vertices includes an A 1 , B 1 , and C 1 component and the second one of the original vertices includes an A 2 , B 2 , and C 2 component, and wherein the determining for the A component equals A 1 * D 2 /(D 1 D 2 ) A 2 * D 1 /(D 1 D 2 ) .

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

February 2, 2000

Publication Date

January 14, 2003

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Method and apparatus for clipping an object element in accordance with a clip volume” (US-6507348). https://patentable.app/patents/US-6507348

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.