Class: DFC::RootEntities

Inherits:
Object show all

Overview

RootEntities,即模型根部的 entities

该类托管最容易造成卡顿的 Sketchup::Model#entities,但不会托管 Sketchup::ComponentDefinition#entities

用途:开发者可以在进行模型生成时,停掉所有的 EntitiesObserver

注意:某些 EntitiesObserver 是不允许停掉的,请不要托管到 RootEntities,以免漏掉要监控的模型

Examples:

# observer
class MyEntitiesObserver < Sketchup::EntitiesObserver
  def onElementAdded(entities, entity)
    puts "onElementAdded: #{entity}"
  end
end
DFC::RootEntities.add_observer(MyEntitiesObserver.new)

# model
model = Sketchup.active_model
ents = model.active_entities
DFC::RootEntities.stop_observer do
  puts ents.add_group
end

Class Method Summary # collapse

Class Method Details

.add_observer(object) ⇒ Object

加入观察者

Examples:

DFC::RootEntities.add_observer(object)

Parameters:

  • object (Sketchup::EntitiesObserver)

    观察者实例

.remove_observer(object) ⇒ Object

移除观察者

Examples:

DFC::RootEntities.remove_observer(object)

Parameters:

  • object (Sketchup::EntitiesObserver)

    观察者实例

.stop_observer { ... } ⇒ Object

临时暂停观察者

需要给定一个 block,代码执行到进入 block 时,所有观察者停止,退出 block 时,所有观察者恢复

Examples:

DFC::RootEntities.stop_observer do
  # do something
end

Yields: