mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-16 23:08:05 +08:00
Code cleanup after migrating node graph interaction to the backend (#1790)
* Cleanup transforms and click targets * Improve click target caching * Fix click target bugs * Add auto panning * update_modified_click_targets * Code review --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
@@ -5,7 +5,7 @@ use dyn_any::{DynAny, StaticType};
|
||||
pub use graphene_core::uuid::generate_uuid;
|
||||
use graphene_core::{ProtoNodeIdentifier, Type};
|
||||
|
||||
use glam::{DAffine2, IVec2};
|
||||
use glam::IVec2;
|
||||
use std::collections::hash_map::DefaultHasher;
|
||||
use std::collections::{HashMap, HashSet};
|
||||
use std::hash::{Hash, Hasher};
|
||||
@@ -665,9 +665,6 @@ pub struct NodeNetwork {
|
||||
pub imports_metadata: (NodeId, IVec2),
|
||||
#[serde(default = "default_export_metadata")]
|
||||
pub exports_metadata: (NodeId, IVec2),
|
||||
/// Transform from node graph space to viewport space.
|
||||
#[serde(default)]
|
||||
pub node_graph_to_viewport: DAffine2,
|
||||
}
|
||||
|
||||
impl std::hash::Hash for NodeNetwork {
|
||||
@@ -690,7 +687,6 @@ impl Default for NodeNetwork {
|
||||
previewing: Default::default(),
|
||||
imports_metadata: default_import_metadata(),
|
||||
exports_metadata: default_export_metadata(),
|
||||
node_graph_to_viewport: DAffine2::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,6 +133,7 @@ impl BorrowTree {
|
||||
/// Pushes new nodes into the tree and return orphaned nodes
|
||||
pub async fn update(&mut self, proto_network: ProtoNetwork, typing_context: &TypingContext) -> Result<Vec<NodeId>, GraphErrors> {
|
||||
let mut old_nodes: HashSet<_> = self.nodes.keys().copied().collect();
|
||||
// TODO: Problem: When an identity node is connected directly to an export the first input to identity node is not added to the proto network, while the second input is. This means the primary input does not have a type.
|
||||
for (id, node) in proto_network.nodes {
|
||||
if !self.nodes.contains_key(&id) {
|
||||
self.push_node(id, node, typing_context).await?;
|
||||
|
||||
Reference in New Issue
Block a user