Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 92a941a944 | |||
| 0e1ddf2b11 | |||
| b57fa010d1 | |||
| f816452b78 | |||
| 120083bb31 | |||
| a5bb5c4686 |
@@ -25,40 +25,18 @@ module SpeckleConnector
|
||||
|
||||
def self.merge_coplanar_faces(faces)
|
||||
edges = []
|
||||
start_time = Time.now.to_f
|
||||
puts "number of faces before reject deleted: #{faces.length}"
|
||||
faces = faces.reject(&:deleted?)
|
||||
puts "number of faces #{faces.length}"
|
||||
elapsed_time = (Time.now.to_f - start_time).round(3)
|
||||
puts "==== 1- Rejecting deleted faces executed in #{elapsed_time} sec ===="
|
||||
|
||||
start_time = Time.now.to_f
|
||||
faces.each { |face| face.edges.each { |edge| edges << edge } }
|
||||
elapsed_time = (Time.now.to_f - start_time).round(3)
|
||||
puts "==== 2- Collecting edges executed in #{elapsed_time} sec ===="
|
||||
|
||||
start_time = Time.now.to_f
|
||||
puts "number of edges before uniq!: #{edges.length}"
|
||||
edges.uniq!
|
||||
puts "number of edges #{edges.length}"
|
||||
elapsed_time = (Time.now.to_f - start_time).round(3)
|
||||
puts "==== 3- Making edges uniq! in #{elapsed_time} sec ===="
|
||||
|
||||
start_time = Time.now.to_f
|
||||
edges.each { |edge| remove_edge_have_coplanar_faces(edge) }
|
||||
elapsed_time = (Time.now.to_f - start_time).round(3)
|
||||
puts "==== 4- Clean up edges executed in #{elapsed_time} sec ===="
|
||||
|
||||
start_time = Time.now.to_f
|
||||
# Remove remaining orphan edges
|
||||
edges.reject(&:deleted?).select { |edge| edge.faces.empty? }.each(&:erase!)
|
||||
elapsed_time = (Time.now.to_f - start_time).round(3)
|
||||
puts "==== 5- Removing orphan edges edges executed in #{elapsed_time} sec ===="
|
||||
# edges.reject(&:deleted?).select { |edge| edge.faces.empty? }.each(&:erase!)
|
||||
|
||||
start_time = Time.now.to_f
|
||||
merged_faces(faces)
|
||||
elapsed_time = (Time.now.to_f - start_time).round(3)
|
||||
puts "==== 6- Rejecting deleted faces executed in #{elapsed_time} sec ===="
|
||||
end
|
||||
|
||||
def self.merged_faces(faces)
|
||||
|
||||
@@ -12,7 +12,7 @@ module SpeckleConnector
|
||||
include Immutable::ImmutableUtils
|
||||
DICT_HANDLER = SketchupModel::Dictionary::SpeckleModelDictionaryHandler
|
||||
# rubocop:disable Layout/LineLength
|
||||
DEFAULT_CONFIG = "('configSketchup', '{\"dark_theme\":false, \"diffing\":false, \"register_speckle_entity\":false}, \"fe2\":false');"
|
||||
DEFAULT_CONFIG = "('configSketchup', '{\"dark_theme\":false, \"diffing\":false, \"register_speckle_entity\":false, \"fe2\":false}');"
|
||||
# rubocop:enable Layout/LineLength
|
||||
DEFAULT_PREFERENCES = '{"dark_theme":false, "diffing":false, "register_speckle_entity": false, "fe2": false}'
|
||||
|
||||
@@ -34,12 +34,16 @@ module SpeckleConnector
|
||||
def self.data_complete?(row_data)
|
||||
return false if row_data.empty?
|
||||
|
||||
data = JSON.parse(row_data.first.first)
|
||||
if data['dark_theme'].nil? || data['fe2'].nil? || data['diffing'].nil? || data['register_speckle_entity'].nil?
|
||||
return false
|
||||
end
|
||||
begin
|
||||
data = JSON.parse(row_data.first.first)
|
||||
if data['dark_theme'].nil? || data['fe2'].nil? || data['diffing'].nil? || data['register_speckle_entity'].nil?
|
||||
return false
|
||||
end
|
||||
|
||||
true
|
||||
true
|
||||
rescue StandardError
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
# Validates current preferences. If there are incomplete data then this method resets it with default preferences.
|
||||
|
||||
@@ -136,6 +136,15 @@ module SpeckleConnector
|
||||
next if (entity.is_a?(Sketchup::Face) || entity.is_a?(Sketchup::Edge)) &&
|
||||
!state.user_state.user_preferences[:register_speckle_entity]
|
||||
|
||||
if entity.is_a?(Sketchup::ComponentDefinition)
|
||||
definition = speckle_object['definition'] || speckle_object['@block_definition'] ||
|
||||
speckle_object['block_definition']
|
||||
if definition
|
||||
speckle_id = definition['id']
|
||||
speckle_type = definition['speckle_type']
|
||||
end
|
||||
end
|
||||
|
||||
ent = SpeckleEntity.new(entity, speckle_id, application_id, speckle_type, children, [stream_id])
|
||||
ent.write_initial_base_data
|
||||
speckle_state = speckle_state.with_speckle_entity(ent)
|
||||
|
||||
Reference in New Issue
Block a user