trenchbroom / trenchbroom Goto Github PK
View Code? Open in Web Editor NEWCross-Platform Level Editor
Home Page: kristianduske.com/trenchbroom
License: GNU General Public License v3.0
Cross-Platform Level Editor
Home Page: kristianduske.com/trenchbroom
License: GNU General Public License v3.0
Either increase the drag threshold or use a modifier key.
Not working on the windows version?
http://kristianduske.com/trenchbroom/docs/English.lproj/pgs/editing_objects.html#moving_objects
Documentation says to use the option key, which I believe maps to the Alt key on windows, yet Alt + Left click and drag doesn't do anything (still moves in x/y plane)
Would it be possible to consider using a gizmo similar to 3ds max? ( http://www.t3df.com/discovery/NotesImages/Topic74NotesImage1.jpg )
Essentially a constant sized object that appears at the center of the selection. Clicking and dragging on the axes will move in only that direction, and clicking on the square linking two axes together will constrain movement to that plane.
Undo can be implemented like so:
Abstract Class UndoItem with undo() method, which returns the redo item. Also has a name.
Concrete class UndoGroup that contains other UndoItems
Concrete template class UndoSnapshot that contains pairs of an object, e.g. face and its snapshot, which is a copy of the object before it was modified. The copy is created using the copy constructor. The undo() method assigns the copy to the original using the assignment operator.
Might be false alarms due to the local statics in the singletons!
How to detect them:
http://msdn.microsoft.com/en-us/library/x98tx3cf.aspx
These techniques work for memory allocated using the standard CRT malloc function. If your program allocates memory using the C++ new operator, however, you need to redefine new if you want to see the file and line numbers in the memory-leak report. You can do that with a block of code that looks like this:
#ifndef DBG_NEW
#define DBG_NEW new ( _NORMAL_BLOCK , FILE , LINE )
#define new DBG_NEW
#endif
Also move files in Core/GUI to Core/UI and adapt class names (EditorGui, EditorGuiListener etc.).
Currently, MapRenderer manages a lot of state to keep the changes to VBO data to a minimum. This creates a lot of problems and does not really help with performance enough to warrant all the complications. It is very likely not much slower, but much simpler to just recreate all world geometry VBOs whenever anything in the map changes.
The current hits of the input controller must be updated whenever the model changes.
The entity definition manager keeps a static local map of its instances. Since they are stored in the map as pointers, they will never be destroyed.
Trying to load a 220 format .map crashes TrenchBroom. There's a warning message
that textures might be misaligned, but shortly after that the editor crashes.
The .map file included rubytron_cardo.map. Rubicon 2 map.
I suppose that the problem is that it contains floats in scientific notation.
using the keyboard and, if possible, the mouse
map.h and map.cpp still contain functions taking ints as arguments.
On windows, the font factory must be implemented using Win32 HFONT and GetGlyphOutline. However, this function cannot flatten the cubic Bezier curves, so this must be done manually.
http://stackoverflow.com/questions/3011486/help-with-getglyphoutline-functionwinapi
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=50004&lngWId=1
http://www.caffeineowl.com/graphics/2d/vectorial/bezierintro.html
http://www.sciencedirect.com/science/article/pii/S0097849305001287
http://www.cis.usouthal.edu/~hain/general/Publications/Bezier/bezier%20cccg04%20paper.pdf
http://support.microsoft.com/kb/87115/en-us
This shows how to flatten text outlines with GDI paths:
http://graphicsbb.itgo.com/solutions/extrude.html#texttopoly
Measure string size:
http://msdn.microsoft.com/en-us/library/ms535829(v=vs.85).aspx
Use correct method for exact measurements:
http://stackoverflow.com/questions/118686/gdi-measurestring-pads-the-text-on-the-left-and-the-right
Prefs should be stored according to the platform's best practices (prefs file on os x, registry on windows...).
Pre-sort the list of faces initially using quicksort or some such algorithm, then cache the results. Upon changes to the data, either resort using an adaptive sort algorithm or remove and insert the data. Note that in case of many changes to the data structures (such as moving the entire map), this may result in worse behavior, but this can be avoided be simply resorting everything if the number of changes breaks some threshold.
Newly created brushes are added to the selected brush group if any of them is
activated. If no brush group is activated, newly created brushes are not added
to any group. If no brush group is selected, but at least one is activated, the
newly created brushes are added to the activated brush group which was created
last.
The bsp is generated, then deleted, and when we attempt to copy it, it's gone.
TrenchBroom would be much more flexible and extensible if it had a scripting engine and a console.
Also move UndoManager classes to Controller namespace.
The button should try to fit the texture onto the face as good as possible.
Bitmap fonts may offer better performance with slightly less visual quality.
for clip brushes, triggers, lights, paths. Also add a search box that allows to filter objects by substring.
for Quoth, Rubicon
90 deg rotation (keyboard shortcuts) and arbitrary rotation (mouse)
Open two editor windows (one of which contains a map) and close the empty one. There will be an exception in the remaining editor windows' render loop.
Drag a texture on a face applies the texture to that face.
Drag a texture on a brush while holding ALT applies the texture to that brush.
Selection is unimportant because clicking on a texture applies the texture to all selected faces / brushes anyway.
Most importantly to suppress rendering of the worldspawn entity.
while dragging a vertex (that has previously been clipped). I was dragging it
such that multiple surfaces would become coplanar.
Wouter
Assertion failed: (edge->startVertex != candidate->endVertex), function
mergeEdges, file /Users/kristian/Documents/Code/XCode/TrenchBroom/VertexData.m,
line 1731.
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff8ee2fce2 __pthread_kill + 10
1 libsystem_c.dylib 0x00007fff8e8437d2 pthread_kill + 95
2 libsystem_c.dylib 0x00007fff8e834a7a abort + 143
3 libsystem_c.dylib 0x00007fff8e8675de __assert_rtn + 146
4 com.kristianduske.TrenchBroom 0x00000001000be9a7 mergeEdges + 327
5 com.kristianduske.TrenchBroom 0x00000001000bf61a performVertexDrag +
1690
6 com.kristianduske.TrenchBroom 0x00000001000c0a34 dragVertex + 388
7 com.kristianduske.TrenchBroom 0x0000000100009a21 -[MutableBrush
dragVertex:by:] + 273
8 com.kristianduske.TrenchBroom 0x000000010002b8eb -[MapDocument
dragVertex:brush:delta:] + 379
9 com.kristianduske.TrenchBroom 0x00000001000c810b -[DragVertexTool
doLeftDrag:ray:delta:hits:lastPoint:] + 315
10 com.kristianduske.TrenchBroom 0x00000001000c9aad -[DragTool
leftDrag:ray:hits:] + 429
11 com.kristianduske.TrenchBroom 0x000000010004974e -[InputController
leftMouseDragged:sender:] + 814
12 com.kristianduske.TrenchBroom 0x0000000100018e97 -[MapView3D
mouseDragged:] + 119
13 com.apple.AppKit 0x00007fff964b4b44 -[NSWindow sendEvent:]
Select, Copy cut paste, navigation
The wxWidgets / mingw port is not working out correctly, so make a pure windows MFC port using Visual Studio.
to be found in , min and max
The size guides are currently broken and need to be fixed.
http://celephais.net/board/view_thread.php?id=60674&start=165
Example: Take a brush with a bounding box of size x = 48, y = 48, z = 32 and set the grid to 32. Move the brush on the X/Y plane and it will start jumping by 16 back and forth along the X and Y axes.
By drawing the bounding box edges of current selection on into infinity. See Sauer editor for examples.
Moving a brush results in distorted textures.
Autosave is currently disabled because the autosave feature of Mac OS 10.7 gives an error when autosaving. Maybe it should remain disabled because TB has its own autosave feature?
Class names rendering currently does not respect the filter. Need a way to allow the TextRenderer to access the filter, possibly through an adapter.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.