{"bundle_type":"pith_open_graph_bundle","bundle_version":"1.0","pith_number":"pith:2012:U5I7DRWEKQ3YLETUMNLCKZRUC2","short_pith_number":"pith:U5I7DRWE","canonical_record":{"source":{"id":"1207.3502","kind":"arxiv","version":2},"metadata":{"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.CG","submitted_at":"2012-07-15T13:06:26Z","cross_cats_sorted":[],"title_canon_sha256":"295d816814cf760c9dcb7e789e3fd519d4c59896855c7105e993bfb7df17dadf","abstract_canon_sha256":"088dc37c073b8ca65dd068aa8248a4981f0e40e3aad7a3d5c6e73b44e0c7f8a7"},"schema_version":"1.0"},"canonical_sha256":"a751f1c6c45437859274635625663416b03541ebb72b4ac2843a89aaa44de6d3","source":{"kind":"arxiv","id":"1207.3502","version":2},"source_aliases":[{"alias_kind":"arxiv","alias_value":"1207.3502","created_at":"2026-05-18T00:39:48Z"},{"alias_kind":"arxiv_version","alias_value":"1207.3502v2","created_at":"2026-05-18T00:39:48Z"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.1207.3502","created_at":"2026-05-18T00:39:48Z"},{"alias_kind":"pith_short_12","alias_value":"U5I7DRWEKQ3Y","created_at":"2026-05-18T12:27:23Z"},{"alias_kind":"pith_short_16","alias_value":"U5I7DRWEKQ3YLETU","created_at":"2026-05-18T12:27:23Z"},{"alias_kind":"pith_short_8","alias_value":"U5I7DRWE","created_at":"2026-05-18T12:27:23Z"}],"events":[{"event_type":"record_created","subject_pith_number":"pith:2012:U5I7DRWEKQ3YLETUMNLCKZRUC2","target":"record","payload":{"canonical_record":{"source":{"id":"1207.3502","kind":"arxiv","version":2},"metadata":{"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.CG","submitted_at":"2012-07-15T13:06:26Z","cross_cats_sorted":[],"title_canon_sha256":"295d816814cf760c9dcb7e789e3fd519d4c59896855c7105e993bfb7df17dadf","abstract_canon_sha256":"088dc37c073b8ca65dd068aa8248a4981f0e40e3aad7a3d5c6e73b44e0c7f8a7"},"schema_version":"1.0"},"canonical_sha256":"a751f1c6c45437859274635625663416b03541ebb72b4ac2843a89aaa44de6d3","receipt":{"kind":"pith_receipt","key_id":"pith-v1-2026-05","algorithm":"ed25519","signed_at":"2026-05-18T00:39:48.537435Z","signature_b64":"RN0Rv20hRRUMV586V2meqhWnM9t2YsypAbZnTdOur65IgHem1YdzGVDOxtztpHIp8SvL4QeVH7yB7Z3chVGUCg==","signed_message":"canonical_sha256_bytes","builder_version":"pith-number-builder-2026-05-17-v1","receipt_version":"0.3","canonical_sha256":"a751f1c6c45437859274635625663416b03541ebb72b4ac2843a89aaa44de6d3","last_reissued_at":"2026-05-18T00:39:48.536718Z","signature_status":"signed_v1","first_computed_at":"2026-05-18T00:39:48.536718Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"source_kind":"arxiv","source_id":"1207.3502","source_version":2,"attestation_state":"computed"},"signer":{"signer_id":"pith.science","signer_type":"pith_registry","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"created_at":"2026-05-18T00:39:48Z","supersedes":[],"prev_event":null,"signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"lgSdHwYNqGvSlKf0ybB2dlBK+ldfPvvABRguIvU+LzTrJS/+XyqPka8MWQpK4tD1bX1aUniW7Ou/ocf3EqzNDg==","signed_message":"open_graph_event_sha256_bytes","signed_at":"2026-05-31T23:41:24.611006Z"},"content_sha256":"ef82fb9c23f78a3ecd6aa5cc71f5357f1dcfe5f5d2a0abc4d1115213e3e83595","schema_version":"1.0","event_id":"sha256:ef82fb9c23f78a3ecd6aa5cc71f5357f1dcfe5f5d2a0abc4d1115213e3e83595"},{"event_type":"graph_snapshot","subject_pith_number":"pith:2012:U5I7DRWEKQ3YLETUMNLCKZRUC2","target":"graph","payload":{"graph_snapshot":{"paper":{"title":"A Simple and Correct Even-Odd Algorithm for the Point-in-Polygon Problem for Complex Polygons","license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","headline":"","cross_cats":[],"primary_cat":"cs.CG","authors_text":"Michael Galetzka, Patrick O. Glauner","submitted_at":"2012-07-15T13:06:26Z","abstract_excerpt":"Determining if a point is in a polygon or not is used by a lot of applications in computer graphics, computer games and geoinformatics. Implementing this check is error-prone since there are many special cases to be considered. This holds true in particular for complex polygons whose edges intersect each other creating holes. In this paper we present a simple even-odd algorithm to solve this problem for complex polygons in linear time and prove its correctness for all possible points and polygons. We furthermore provide examples and implementation notes for this algorithm."},"claims":{"count":0,"items":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"1207.3502","kind":"arxiv","version":2},"verdict":{"id":null,"model_set":{},"created_at":null,"strongest_claim":"","one_line_summary":"","pipeline_version":null,"weakest_assumption":"","pith_extraction_headline":""},"references":{"count":0,"sample":[],"resolved_work":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","internal_anchors":0},"formal_canon":{"evidence_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"author_claims":{"count":0,"strong_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"builder_version":"pith-number-builder-2026-05-17-v1"},"verdict_id":null},"signer":{"signer_id":"pith.science","signer_type":"pith_registry","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"created_at":"2026-05-18T00:39:48Z","supersedes":[],"prev_event":null,"signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"DPEGqe3X6q0ICkgwsOgO2Brku1cGjCHm69zcvByy+qA990+yB38sPsg1UA/xibpUqZFmuh//xsqzGB1BHFqQAA==","signed_message":"open_graph_event_sha256_bytes","signed_at":"2026-05-31T23:41:24.611714Z"},"content_sha256":"2ccdb76254d1bb62b7fcf1602fa1b1f71e1382c2aeb5fd8a6673949f631e6ac0","schema_version":"1.0","event_id":"sha256:2ccdb76254d1bb62b7fcf1602fa1b1f71e1382c2aeb5fd8a6673949f631e6ac0"}],"timestamp_proofs":[],"mirror_hints":[{"mirror_type":"https","name":"Pith Resolver","base_url":"https://pith.science","bundle_url":"https://pith.science/pith/U5I7DRWEKQ3YLETUMNLCKZRUC2/bundle.json","state_url":"https://pith.science/pith/U5I7DRWEKQ3YLETUMNLCKZRUC2/state.json","well_known_bundle_url":"https://pith.science/.well-known/pith/U5I7DRWEKQ3YLETUMNLCKZRUC2/bundle.json","status":"primary"}],"public_keys":[{"key_id":"pith-v1-2026-05","algorithm":"ed25519","format":"raw","public_key_b64":"stVStoiQhXFxp4s2pdzPNoqVNBMojDU/fJ2db5S3CbM=","public_key_hex":"b2d552b68890857171a78b36a5dccf368a953413288c353f7c9d9d6f94b709b3","fingerprint_sha256_b32_first128bits":"RVFV5Z2OI2J3ZUO7ERDEBCYNKS","fingerprint_sha256_hex":"8d4b5ee74e4693bcd1df2446408b0d54","rotates_at":null,"url":"https://pith.science/pith-signing-key.json","notes":"Pith uses this Ed25519 key to sign canonical record SHA-256 digests. Verify with: ed25519_verify(public_key, message=canonical_sha256_bytes, signature=base64decode(signature_b64))."}],"merge_version":"pith-open-graph-merge-v1","built_at":"2026-05-31T23:41:24Z","links":{"resolver":"https://pith.science/pith/U5I7DRWEKQ3YLETUMNLCKZRUC2","bundle":"https://pith.science/pith/U5I7DRWEKQ3YLETUMNLCKZRUC2/bundle.json","state":"https://pith.science/pith/U5I7DRWEKQ3YLETUMNLCKZRUC2/state.json","well_known_bundle":"https://pith.science/.well-known/pith/U5I7DRWEKQ3YLETUMNLCKZRUC2/bundle.json"},"state":{"state_type":"pith_open_graph_state","state_version":"1.0","pith_number":"pith:2012:U5I7DRWEKQ3YLETUMNLCKZRUC2","merge_version":"pith-open-graph-merge-v1","event_count":2,"valid_event_count":2,"invalid_event_count":0,"equivocation_count":0,"current":{"canonical_record":{"metadata":{"abstract_canon_sha256":"088dc37c073b8ca65dd068aa8248a4981f0e40e3aad7a3d5c6e73b44e0c7f8a7","cross_cats_sorted":[],"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.CG","submitted_at":"2012-07-15T13:06:26Z","title_canon_sha256":"295d816814cf760c9dcb7e789e3fd519d4c59896855c7105e993bfb7df17dadf"},"schema_version":"1.0","source":{"id":"1207.3502","kind":"arxiv","version":2}},"source_aliases":[{"alias_kind":"arxiv","alias_value":"1207.3502","created_at":"2026-05-18T00:39:48Z"},{"alias_kind":"arxiv_version","alias_value":"1207.3502v2","created_at":"2026-05-18T00:39:48Z"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.1207.3502","created_at":"2026-05-18T00:39:48Z"},{"alias_kind":"pith_short_12","alias_value":"U5I7DRWEKQ3Y","created_at":"2026-05-18T12:27:23Z"},{"alias_kind":"pith_short_16","alias_value":"U5I7DRWEKQ3YLETU","created_at":"2026-05-18T12:27:23Z"},{"alias_kind":"pith_short_8","alias_value":"U5I7DRWE","created_at":"2026-05-18T12:27:23Z"}],"graph_snapshots":[{"event_id":"sha256:2ccdb76254d1bb62b7fcf1602fa1b1f71e1382c2aeb5fd8a6673949f631e6ac0","target":"graph","created_at":"2026-05-18T00:39:48Z","signer":{"key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signer_id":"pith.science","signer_type":"pith_registry"},"payload":{"graph_snapshot":{"author_claims":{"count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","strong_count":0},"builder_version":"pith-number-builder-2026-05-17-v1","claims":{"count":0,"items":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"formal_canon":{"evidence_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"paper":{"abstract_excerpt":"Determining if a point is in a polygon or not is used by a lot of applications in computer graphics, computer games and geoinformatics. Implementing this check is error-prone since there are many special cases to be considered. This holds true in particular for complex polygons whose edges intersect each other creating holes. In this paper we present a simple even-odd algorithm to solve this problem for complex polygons in linear time and prove its correctness for all possible points and polygons. We furthermore provide examples and implementation notes for this algorithm.","authors_text":"Michael Galetzka, Patrick O. Glauner","cross_cats":[],"headline":"","license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.CG","submitted_at":"2012-07-15T13:06:26Z","title":"A Simple and Correct Even-Odd Algorithm for the Point-in-Polygon Problem for Complex Polygons"},"references":{"count":0,"internal_anchors":0,"resolved_work":0,"sample":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"1207.3502","kind":"arxiv","version":2},"verdict":{"created_at":null,"id":null,"model_set":{},"one_line_summary":"","pipeline_version":null,"pith_extraction_headline":"","strongest_claim":"","weakest_assumption":""}},"verdict_id":null}}],"author_attestations":[],"timestamp_anchors":[],"storage_attestations":[],"citation_signatures":[],"replication_records":[],"corrections":[],"mirror_hints":[],"record_created":{"event_id":"sha256:ef82fb9c23f78a3ecd6aa5cc71f5357f1dcfe5f5d2a0abc4d1115213e3e83595","target":"record","created_at":"2026-05-18T00:39:48Z","signer":{"key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signer_id":"pith.science","signer_type":"pith_registry"},"payload":{"attestation_state":"computed","canonical_record":{"metadata":{"abstract_canon_sha256":"088dc37c073b8ca65dd068aa8248a4981f0e40e3aad7a3d5c6e73b44e0c7f8a7","cross_cats_sorted":[],"license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","primary_cat":"cs.CG","submitted_at":"2012-07-15T13:06:26Z","title_canon_sha256":"295d816814cf760c9dcb7e789e3fd519d4c59896855c7105e993bfb7df17dadf"},"schema_version":"1.0","source":{"id":"1207.3502","kind":"arxiv","version":2}},"canonical_sha256":"a751f1c6c45437859274635625663416b03541ebb72b4ac2843a89aaa44de6d3","receipt":{"algorithm":"ed25519","builder_version":"pith-number-builder-2026-05-17-v1","canonical_sha256":"a751f1c6c45437859274635625663416b03541ebb72b4ac2843a89aaa44de6d3","first_computed_at":"2026-05-18T00:39:48.536718Z","key_id":"pith-v1-2026-05","kind":"pith_receipt","last_reissued_at":"2026-05-18T00:39:48.536718Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","receipt_version":"0.3","signature_b64":"RN0Rv20hRRUMV586V2meqhWnM9t2YsypAbZnTdOur65IgHem1YdzGVDOxtztpHIp8SvL4QeVH7yB7Z3chVGUCg==","signature_status":"signed_v1","signed_at":"2026-05-18T00:39:48.537435Z","signed_message":"canonical_sha256_bytes"},"source_id":"1207.3502","source_kind":"arxiv","source_version":2}}},"equivocations":[],"invalid_events":[],"applied_event_ids":["sha256:ef82fb9c23f78a3ecd6aa5cc71f5357f1dcfe5f5d2a0abc4d1115213e3e83595","sha256:2ccdb76254d1bb62b7fcf1602fa1b1f71e1382c2aeb5fd8a6673949f631e6ac0"],"state_sha256":"07078a861a9f166ab971f3f4193ac4ceff8830c2574648f82ed71286dd4ed4e6"},"bundle_signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"O7Zd4hLsU+rTXcMQ+0RgfpdW+FZ4WJxpK+zxff71q//C2lgB6uawcdS46K3aqtQAYtcQsWonYOw2doZz2EZiCQ==","signed_message":"bundle_sha256_bytes","signed_at":"2026-05-31T23:41:24.617584Z","bundle_sha256":"4d727f1828b7d0647dc34601926c42d294ab87845372def135d77393700859ae"}}