//-------------------------------------------------------------- void ofApp::setup(){ ofBackground(255); ofSetFrameRate(60); ofSetBackgroundAuto(false); w = Walker(); }
FSequencerSnapField::FSequencerSnapField(const ISequencer& InSequencer, ISequencerSnapCandidate& Candidate, uint32 EntityMask) { TSharedPtr<SSequencerTreeView> TreeView = StaticCastSharedRef<SSequencer>(InSequencer.GetSequencerWidget())->GetTreeView(); TArray<TSharedRef<FSequencerDisplayNode>> VisibleNodes; for (const SSequencerTreeView::FCachedGeometry& Geometry : TreeView->GetAllVisibleNodes()) { VisibleNodes.Add(Geometry.Node); } auto ViewRange = InSequencer.GetViewRange(); FSequencerEntityWalker Walker(ViewRange); // Traverse the visible space, collecting snapping times as we go FSnapGridVisitor Visitor(Candidate, EntityMask); Walker.Traverse(Visitor, VisibleNodes); // Add the playback range start/end bounds as potential snap candidates TRange<float> PlaybackRange = InSequencer.GetFocusedMovieSceneSequence()->GetMovieScene()->GetPlaybackRange(); Visitor.Snaps.Add(FSequencerSnapPoint{ FSequencerSnapPoint::PlaybackRange, PlaybackRange.GetLowerBoundValue() }); Visitor.Snaps.Add(FSequencerSnapPoint{ FSequencerSnapPoint::PlaybackRange, PlaybackRange.GetUpperBoundValue() }); // Add the current time as a potential snap candidate Visitor.Snaps.Add(FSequencerSnapPoint{ FSequencerSnapPoint::CurrentTime, InSequencer.GetGlobalTime() }); // Add the selection range bounds as a potential snap candidate TRange<float> SelectionRange = InSequencer.GetFocusedMovieSceneSequence()->GetMovieScene()->GetSelectionRange(); Visitor.Snaps.Add(FSequencerSnapPoint{ FSequencerSnapPoint::InOutRange, SelectionRange.GetLowerBoundValue() }); Visitor.Snaps.Add(FSequencerSnapPoint{ FSequencerSnapPoint::InOutRange, SelectionRange.GetUpperBoundValue() }); // Sort Visitor.Snaps.Sort([](const FSequencerSnapPoint& A, const FSequencerSnapPoint& B){ return A.Time < B.Time; }); // Remove duplicates for (int32 Index = 0; Index < Visitor.Snaps.Num(); ++Index) { const float CurrentTime = Visitor.Snaps[Index].Time; int32 NumToMerge = 0; for (int32 DuplIndex = Index + 1; DuplIndex < Visitor.Snaps.Num(); ++DuplIndex) { if (!FMath::IsNearlyEqual(CurrentTime, Visitor.Snaps[DuplIndex].Time)) { break; } ++NumToMerge; } if (NumToMerge) { Visitor.Snaps.RemoveAt(Index + 1, NumToMerge, false); } } SortedSnaps = MoveTemp(Visitor.Snaps); }
TEST_F(TestIRVisitor, TestWalker) { IRTypes types; IRValue* condVar = new IRLocalVar("cond", types.GetBoolTy(), kIRUniform, NULL); IRStmt* thenStmt = MakeBlock(&types); IRStmt* elseStmt = MakeBlock(&types, true); IRIfStmt ifStmt(condVar, thenStmt, elseStmt, IRPos()); Walker().Dispatch<void>(&ifStmt, 0); }
// selfSetup is called when the visual system is first instantiated // This will be called during a "loading" screen, so any big images or // geometry should be loaded here void CloudsVisualSystemOpenP5Spaghetti::selfSetup(){ // colorMap.loadImage( getVisualSystemDataPath() + "GUI/defaultColorPalette.png" ); color1.setHsb(hue1,saturation1, brightness1); //cout << "color1 = "<< color1 << endl; color2.setHsb(hue2,saturation2, brightness2); // cout << "color2 = "<< color2 << endl; for(int i = 0; i<NWalkers; i++){ newColor = color1; walkers.push_back( Walker() ); walkers[i].init(NWalkers, newColor); // walkers[i] = *new Walker(); << wrong syntax } }