MCPcopy Create free account
hub / github.com/IppClub/Dora-SSR / visitInner

Method visitInner

Source/Node/Node.cpp:911–960  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

909}
910
911void Node::visitInner() {
912 if (_flags.isOff(Node::Visible)) {
913 return;
914 }
915
916 /* get world matrix */
917 getWorld();
918
919 auto& rendererManager = SharedRendererManager;
920 if (_children && !_children->isEmpty() && _flags.isOn(Node::ChildrenVisible)) {
921 sortAllChildren();
922
923 auto visitChildren = [&]() {
924 /* visit and render child whose order is less than 0 */
925 size_t index = 0;
926 auto& data = _children->data();
927 for (index = 0; index < data.size(); index++) {
928 Node* node = data[index]->to<Node>();
929 if (node->getOrder() >= 0) break;
930 node->visit();
931 }
932
933 /* render self */
934 if (_flags.isOn(Node::SelfVisible)) {
935 if (rendererManager.isGrouping() && _renderOrder != 0) {
936 rendererManager.pushGroupItem(this);
937 } else {
938 render();
939 }
940 }
941
942 /* visit and render child whose order is greater equal than 0 */
943 for (; index < data.size(); index++) {
944 Node* node = data[index]->to<Node>();
945 node->visit();
946 }
947 };
948
949 if (_flags.isOn(Node::RenderGrouped)) {
950 rendererManager.pushGroup(getNodeCount(), visitChildren);
951 } else
952 visitChildren();
953 } else if (_flags.isOn(Node::SelfVisible)) {
954 if (rendererManager.isGrouping() && _renderOrder != 0) {
955 rendererManager.pushGroupItem(this);
956 } else {
957 render();
958 }
959 }
960}
961
962void Node::visit() {
963 if (_grabber) {

Callers 2

visitMethod · 0.80
renderOnlyMethod · 0.80

Calls 10

isOffMethod · 0.80
isOnMethod · 0.80
getOrderMethod · 0.80
isGroupingMethod · 0.80
pushGroupItemMethod · 0.80
isEmptyMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45
visitMethod · 0.45
pushGroupMethod · 0.45

Tested by

no test coverage detected