wtf
This commit is contained in:
16
README.md
16
README.md
@@ -205,6 +205,22 @@ auto cube = Mesh::CreateCube();
|
||||
- **Memory Pools**: Reduced allocation overhead
|
||||
- **Cache-Friendly Design**: Data structures optimized for CPU cache
|
||||
|
||||
## AI God Mode
|
||||
|
||||
Let Claude play god in the world. The engine exposes a JSON HTTP API on
|
||||
`localhost:9090`; `ai_god.py` wires Claude up to it via tool-use and lets the
|
||||
model experiment autonomously — querying state, spawning geometry, moving
|
||||
the camera, iterating on compositions.
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
export ANTHROPIC_API_KEY=sk-ant-...
|
||||
./build/ModernEngine &
|
||||
python ai_god.py
|
||||
```
|
||||
|
||||
Useful flags: `--max-turns N`, `--port 9090`, `--prompt "build a solar system"`.
|
||||
|
||||
## Contributing
|
||||
|
||||
1. Ensure your compiler supports C++23
|
||||
|
||||
327
ai_god.py
Normal file
327
ai_god.py
Normal file
@@ -0,0 +1,327 @@
|
||||
"""
|
||||
Claude plays god in the ZoomEngine 3D world.
|
||||
|
||||
The engine runs a JSON HTTP API on localhost:9090 (AgentAPI.h). This script
|
||||
wires Claude up to that API via tool-use and lets it experiment with the
|
||||
world autonomously.
|
||||
|
||||
Usage:
|
||||
export ANTHROPIC_API_KEY=sk-ant-...
|
||||
./build/ModernEngine & # start the engine first
|
||||
python ai_god.py # let Claude cook
|
||||
python ai_god.py --max-turns 50 --port 9090
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import sys
|
||||
import time
|
||||
import urllib.error
|
||||
import urllib.request
|
||||
|
||||
import anthropic
|
||||
|
||||
MODEL = "claude-opus-4-7"
|
||||
DEFAULT_PORT = 9090
|
||||
|
||||
GOD_PROMPT = """You are God of a small 3D universe rendered in real time by the ZoomEngine.
|
||||
This world is yours. Have fun. Build things. Change things. Break things. Make it beautiful,
|
||||
strange, alive. Start simple and grow toward more complex, self-referential systems.
|
||||
|
||||
You act on the world through three tools:
|
||||
- execute: runs one or more engine commands (create/move/rotate/scale/delete/camera/...)
|
||||
- query_world: returns the current world state (object count, camera, fps)
|
||||
- wait: pauses so you can let motion or a composition settle before deciding
|
||||
|
||||
Operating principles:
|
||||
1. Query the world before acting for the first time, and again whenever you
|
||||
lose track of what you've built. Don't build blind.
|
||||
2. Prefer batched execute calls — many small commands in one tool use — over
|
||||
a chain of single-command calls. The engine has a native batch action.
|
||||
3. Name your objects with the `id` field so you can move, rotate, and delete
|
||||
them later. Unnamed objects become immortal clutter.
|
||||
4. Start small. Place a ground plane or grid first so there's something to
|
||||
stand on. Then add life. Then add systems.
|
||||
5. Evolve. Each iteration should make the world more interesting than the
|
||||
last — add new kinds of structure, not just more of the same thing.
|
||||
6. Use the camera. An orbit command around a composition is how the human
|
||||
watching actually sees what you built.
|
||||
7. Talk to the human watching via the `log` engine command (shows on
|
||||
screen) or via normal text in your reply.
|
||||
8. When you feel the current composition is complete, say so in plain
|
||||
text and stop — that's a good place to pause."""
|
||||
|
||||
COMMAND_SCHEMA_HINT = """The `execute` tool accepts a list of engine commands. Each command is a JSON
|
||||
object with an "action" field. Supported actions:
|
||||
|
||||
{"action":"create","type":"cube|sphere|cylinder|cone|plane|grid|terrain",
|
||||
"id":"<name>","position":[x,y,z],"scale":[x,y,z],"rotation":[x,y,z],
|
||||
"color":[r,g,b], // 0..1
|
||||
// type-specific: segments, radius, height, width, size, spacing,
|
||||
// resolution, max_height
|
||||
}
|
||||
|
||||
{"action":"move", "id":"<name>","position":[x,y,z]}
|
||||
{"action":"rotate", "id":"<name>","rotation":[x,y,z]} // radians
|
||||
{"action":"scale", "id":"<name>","scale":[x,y,z]}
|
||||
{"action":"delete", "id":"<name>"}
|
||||
{"action":"clear"} // remove all
|
||||
{"action":"camera", "position":[x,y,z], "target":[x,y,z]}
|
||||
{"action":"orbit", "distance":20,"angle":45,"height":10}
|
||||
{"action":"sound", "name":"<clip>","volume":1.0}
|
||||
{"action":"music", "name":"<clip>","volume":0.7}
|
||||
{"action":"stop_music"}
|
||||
{"action":"set", "property":"fov|draw_distance|clear_color|time_scale",
|
||||
"value":<number or [r,g,b]>}
|
||||
{"action":"log", "message":"<text shown on screen>"}
|
||||
|
||||
{"action":"save_world", "name":"<name>"} // writes worlds/<name>.json
|
||||
{"action":"load_world", "name":"<name>"} // replaces current world
|
||||
{"action":"list_worlds"} // returns available saves
|
||||
|
||||
Physics (opt-in, hand-rolled rigid-body world):
|
||||
{"action":"physics", "enabled":true, "gravity":[0,-9.81,0], "iterations":8}
|
||||
|
||||
{"action":"body", "id":"<existing-object>",
|
||||
"shape":"sphere|box|plane",
|
||||
"mass":1.0, "static":false,
|
||||
"restitution":0.3, "friction":0.5}
|
||||
Sphere radius = object's max scale component.
|
||||
Box half-extents = 0.5 * object's scale.
|
||||
Plane is always static; offset defaults to object's y.
|
||||
|
||||
{"action":"impulse", "id":"<name>", "impulse":[x,y,z], "point":[x,y,z]?}
|
||||
{"action":"velocity", "id":"<name>", "linear":[x,y,z], "angular":[x,y,z]}
|
||||
{"action":"remove_body", "id":"<name>"}
|
||||
|
||||
Water (Gerstner waves + wave-surface buoyancy, orientation-aware for boxes):
|
||||
{"action":"water", "enabled":true,
|
||||
"level":0.0, "size":120,
|
||||
"amplitude":0.3, "wavelength":8, "speed":1.0,
|
||||
"shallow":[0.25,0.55,0.6], "deep":[0.02,0.12,0.22],
|
||||
"density":1.0, "resolution":128}
|
||||
Bodies bob on actual wave crests; boxes self-right based on corner
|
||||
submergence; underwater fog activates when camera dips below water.
|
||||
|
||||
Weather (drives wave intensity + current + sky):
|
||||
{"action":"weather", "wind_dir":[1,0,0], "wind_speed":2.5,
|
||||
"storminess":0.6, "current_coef":0.8}
|
||||
storminess 0..1: scales wave amplitude/choppiness, darkens sky, foam at crests.
|
||||
wind_speed >0: surface current pushes floating bodies in wind_dir.
|
||||
|
||||
Sun/sky palette + HDR tuning:
|
||||
{"action":"sun", "direction":[-0.3,0.35,-0.2], "color":[1.5,1.1,0.7],
|
||||
"zenith":[0.15,0.35,0.65], "horizon":[0.95,0.65,0.45],
|
||||
"ground":[0.12,0.1,0.08], "sky":[0.7,0.55,0.4],
|
||||
"shadow_extent":80,
|
||||
"exposure":0.9, "bloom_threshold":1.15,
|
||||
"bloom_intensity":1.0, "fog_density":0.008}
|
||||
|
||||
Textures (diffuse + optional normal map — procedural names or .bmp/.tga files):
|
||||
{"action":"create", ..., "texture":"grass", "normal_map":"noise",
|
||||
"uv_scale":[2,2,1]}
|
||||
{"action":"texture", "id":"<name>", "name":"wood", "normal_map":"noise"}
|
||||
Built-in procedural textures:
|
||||
white, black, checker, grid, stripes, noise
|
||||
grass, dirt, rock, wood, brick, marble, concrete
|
||||
Set vertex color near white so the texture color reads through.
|
||||
"noise" also works well as a cheap normal map for micro-relief on any surface.
|
||||
|
||||
PBR material (Cook-Torrance GGX):
|
||||
{"action":"create", ..., "metallic":1.0, "roughness":0.3,
|
||||
"emissive":[4, 2, 0.5]}
|
||||
{"action":"material", "id":"<name>", "metallic":0.9, "roughness":0.2,
|
||||
"emissive":[0,0,0], "normal_map":"rock"}
|
||||
metallic: 0 = dielectric (plastic/wood/stone), 1 = pure metal.
|
||||
roughness: 0.05 = mirror, 1.0 = fully diffuse matte. 0.7 is default.
|
||||
emissive: HDR RGB added after shading; drives bloom. Use for flames/lights.
|
||||
|
||||
A typical physics scene: create a ground plane object, register it as
|
||||
a static plane body, then create some cubes/spheres above and register
|
||||
them as dynamic bodies with mass>0. Enable physics. Watch them fall.
|
||||
|
||||
World coordinates: Y is up. A reasonable camera is at [10,8,10] looking at
|
||||
[0,0,0]. Ground plane at y=0.
|
||||
|
||||
When a composition feels complete, save it with a descriptive name so it can
|
||||
be reloaded later from the main menu."""
|
||||
|
||||
TOOLS = [
|
||||
{
|
||||
"name": "execute",
|
||||
"description": (
|
||||
"Run a list of engine commands against the 3D world. Commands are "
|
||||
"executed in order. Use this for all world mutations — creation, "
|
||||
"movement, deletion, camera, audio, engine settings. Prefer one "
|
||||
"call with many commands over many calls with one."
|
||||
),
|
||||
"input_schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"commands": {
|
||||
"type": "array",
|
||||
"description": "List of engine command objects.",
|
||||
"items": {"type": "object"},
|
||||
}
|
||||
},
|
||||
"required": ["commands"],
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "query_world",
|
||||
"description": (
|
||||
"Read the current world state from the engine: object count, "
|
||||
"named-object count, camera position and target, current FPS. "
|
||||
"Use this to orient yourself before or after making changes."
|
||||
),
|
||||
"input_schema": {"type": "object", "properties": {}},
|
||||
},
|
||||
{
|
||||
"name": "wait",
|
||||
"description": (
|
||||
"Pause for a short time so animation or audio can play out "
|
||||
"before you decide what to do next. Max 10 seconds."
|
||||
),
|
||||
"input_schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"seconds": {"type": "number", "description": "0.1 to 10"}
|
||||
},
|
||||
"required": ["seconds"],
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
class Engine:
|
||||
def __init__(self, port: int) -> None:
|
||||
self.base = f"http://localhost:{port}"
|
||||
|
||||
def _post(self, path: str, body: dict) -> dict:
|
||||
data = json.dumps(body).encode()
|
||||
req = urllib.request.Request(
|
||||
self.base + path,
|
||||
data=data,
|
||||
headers={"Content-Type": "application/json"},
|
||||
method="POST",
|
||||
)
|
||||
with urllib.request.urlopen(req, timeout=10) as r:
|
||||
return json.loads(r.read().decode() or "{}")
|
||||
|
||||
def _get(self, path: str) -> dict:
|
||||
with urllib.request.urlopen(self.base + path, timeout=10) as r:
|
||||
return json.loads(r.read().decode() or "{}")
|
||||
|
||||
def execute(self, commands: list[dict]) -> dict:
|
||||
if not commands:
|
||||
return {"ok": True, "queued": 0}
|
||||
if len(commands) == 1:
|
||||
return self._post("/api", commands[0])
|
||||
return self._post("/api", {"action": "batch", "commands": commands})
|
||||
|
||||
def query(self) -> dict:
|
||||
return self._get("/api/status")
|
||||
|
||||
def ping(self) -> bool:
|
||||
try:
|
||||
self.query()
|
||||
return True
|
||||
except (urllib.error.URLError, ConnectionError):
|
||||
return False
|
||||
|
||||
|
||||
def run_tool(engine: Engine, name: str, args: dict) -> str:
|
||||
if name == "execute":
|
||||
result = engine.execute(args.get("commands", []))
|
||||
return json.dumps(result)
|
||||
if name == "query_world":
|
||||
return json.dumps(engine.query())
|
||||
if name == "wait":
|
||||
seconds = max(0.1, min(10.0, float(args.get("seconds", 1.0))))
|
||||
time.sleep(seconds)
|
||||
return json.dumps({"waited": seconds})
|
||||
return json.dumps({"error": f"unknown tool {name}"})
|
||||
|
||||
|
||||
def main() -> int:
|
||||
ap = argparse.ArgumentParser()
|
||||
ap.add_argument("--port", type=int, default=DEFAULT_PORT)
|
||||
ap.add_argument("--max-turns", type=int, default=40)
|
||||
ap.add_argument(
|
||||
"--prompt",
|
||||
default="Begin. This world is blank. Make something.",
|
||||
help="Initial user message kicking God into action.",
|
||||
)
|
||||
args = ap.parse_args()
|
||||
|
||||
engine = Engine(args.port)
|
||||
if not engine.ping():
|
||||
print(
|
||||
f"Cannot reach engine at {engine.base}. Start ModernEngine first.",
|
||||
file=sys.stderr,
|
||||
)
|
||||
return 1
|
||||
|
||||
client = anthropic.Anthropic()
|
||||
system = [
|
||||
{
|
||||
"type": "text",
|
||||
"text": GOD_PROMPT + "\n\n" + COMMAND_SCHEMA_HINT,
|
||||
"cache_control": {"type": "ephemeral"},
|
||||
}
|
||||
]
|
||||
messages: list[dict] = [{"role": "user", "content": args.prompt}]
|
||||
|
||||
for turn in range(args.max_turns):
|
||||
response = client.messages.create(
|
||||
model=MODEL,
|
||||
max_tokens=16000,
|
||||
system=system,
|
||||
tools=TOOLS,
|
||||
thinking={"type": "adaptive"},
|
||||
output_config={"effort": "high"},
|
||||
messages=messages,
|
||||
)
|
||||
|
||||
for block in response.content:
|
||||
if block.type == "text" and block.text.strip():
|
||||
print(f"\n[god] {block.text}")
|
||||
elif block.type == "tool_use":
|
||||
print(f"[tool] {block.name}({json.dumps(block.input)[:200]})")
|
||||
|
||||
if response.stop_reason == "end_turn":
|
||||
print("\n[god has rested]")
|
||||
return 0
|
||||
|
||||
messages.append({"role": "assistant", "content": response.content})
|
||||
|
||||
tool_results = []
|
||||
for block in response.content:
|
||||
if block.type != "tool_use":
|
||||
continue
|
||||
try:
|
||||
result = run_tool(engine, block.name, block.input)
|
||||
except Exception as e:
|
||||
result = json.dumps({"error": str(e)})
|
||||
tool_results.append(
|
||||
{
|
||||
"type": "tool_result",
|
||||
"tool_use_id": block.id,
|
||||
"content": result,
|
||||
}
|
||||
)
|
||||
|
||||
if not tool_results:
|
||||
# Model stopped without calling a tool and without end_turn.
|
||||
break
|
||||
|
||||
messages.append({"role": "user", "content": tool_results})
|
||||
|
||||
print(f"\n[reached max-turns={args.max_turns}]")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
@@ -10,6 +10,12 @@
|
||||
{ "label": "Stress Test", "action": "stress" },
|
||||
{ "label": "Spinning Monkey", "action": "monkey" },
|
||||
{ "label": "Monkey Grid", "action": "monkeygrid" },
|
||||
{ "label": "God Sandbox", "action": "god" },
|
||||
{ "label": "Grass / Pools", "action": "grass" },
|
||||
{ "label": "Sunset Forest", "action": "sunset" },
|
||||
{ "label": "Sanctuary (Full)", "action": "sanctuary" },
|
||||
{ "label": "Dam (Multi-water)", "action": "dam" },
|
||||
{ "label": "Waterfall (Flow)", "action": "waterfall" },
|
||||
{ "label": "Level Editor", "action": "edit" },
|
||||
{ "label": "Quit", "action": "quit" }
|
||||
]
|
||||
|
||||
@@ -5,32 +5,24 @@ in vec3 Color;
|
||||
|
||||
out vec4 FragColor;
|
||||
|
||||
uniform vec3 uLightPos;
|
||||
uniform vec3 uSunDir;
|
||||
uniform vec3 uSunColor;
|
||||
uniform vec3 uSkyColor;
|
||||
uniform vec3 uGroundColor;
|
||||
uniform vec3 uViewPos;
|
||||
uniform vec3 uLightColor;
|
||||
uniform float uAmbientStrength;
|
||||
uniform float uSpecularStrength;
|
||||
uniform float uShininess;
|
||||
|
||||
void main() {
|
||||
// Normalize the normal vector
|
||||
vec3 norm = normalize(Normal);
|
||||
|
||||
// Ambient lighting
|
||||
vec3 ambient = uAmbientStrength * uLightColor;
|
||||
|
||||
// Diffuse lighting
|
||||
vec3 lightDir = normalize(uLightPos - FragPos);
|
||||
float diff = max(dot(norm, lightDir), 0.0);
|
||||
vec3 diffuse = diff * uLightColor;
|
||||
|
||||
// Specular lighting
|
||||
vec3 viewDir = normalize(uViewPos - FragPos);
|
||||
vec3 reflectDir = reflect(-lightDir, norm);
|
||||
float spec = pow(max(dot(viewDir, reflectDir), 0.0), uShininess);
|
||||
vec3 specular = uSpecularStrength * spec * uLightColor;
|
||||
|
||||
// Combine results
|
||||
vec3 result = (ambient + diffuse + specular) * Color;
|
||||
vec3 N = normalize(Normal);
|
||||
float up = 0.5 + 0.5 * N.y;
|
||||
vec3 ambient = mix(uGroundColor, uSkyColor, up);
|
||||
float NdotL = max(dot(N, uSunDir), 0.0);
|
||||
vec3 diffuse = NdotL * uSunColor;
|
||||
vec3 V = normalize(uViewPos - FragPos);
|
||||
vec3 H = normalize(uSunDir + V);
|
||||
float spec = pow(max(dot(N, H), 0.0), uShininess) * (NdotL > 0.0 ? 1.0 : 0.0);
|
||||
vec3 specular = uSpecularStrength * spec * uSunColor;
|
||||
vec3 result = (ambient + diffuse) * Color + specular;
|
||||
FragColor = vec4(result, 1.0);
|
||||
}
|
||||
|
||||
@@ -85,12 +85,12 @@ clean: CMakeFiles/ModernEngine.dir/clean
|
||||
CMakeFiles/ModernEngine.dir/all:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/ModernEngine.dir/build.make CMakeFiles/ModernEngine.dir/depend
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/ModernEngine.dir/build.make CMakeFiles/ModernEngine.dir/build
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 "Built target ModernEngine"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 "Built target ModernEngine"
|
||||
.PHONY : CMakeFiles/ModernEngine.dir/all
|
||||
|
||||
# Build rule for subdir invocation for target.
|
||||
CMakeFiles/ModernEngine.dir/rule: cmake_check_build_system
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /Users/will/Documents/zoomengine/build/CMakeFiles 16
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /Users/will/Documents/zoomengine/build/CMakeFiles 18
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ModernEngine.dir/all
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /Users/will/Documents/zoomengine/build/CMakeFiles 0
|
||||
.PHONY : CMakeFiles/ModernEngine.dir/rule
|
||||
@@ -102,7 +102,7 @@ ModernEngine: CMakeFiles/ModernEngine.dir/rule
|
||||
# codegen rule for target.
|
||||
CMakeFiles/ModernEngine.dir/codegen:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/ModernEngine.dir/build.make CMakeFiles/ModernEngine.dir/codegen
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 "Finished codegen for target ModernEngine"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 "Finished codegen for target ModernEngine"
|
||||
.PHONY : CMakeFiles/ModernEngine.dir/codegen
|
||||
|
||||
# clean rule for target.
|
||||
|
||||
@@ -16,11 +16,13 @@ set(CMAKE_DEPENDS_DEPENDENCY_FILES
|
||||
"/Users/will/Documents/zoomengine/src/Mesh.cpp" "CMakeFiles/ModernEngine.dir/src/Mesh.cpp.o" "gcc" "CMakeFiles/ModernEngine.dir/src/Mesh.cpp.o.d"
|
||||
"/Users/will/Documents/zoomengine/src/OBJLoader.cpp" "CMakeFiles/ModernEngine.dir/src/OBJLoader.cpp.o" "gcc" "CMakeFiles/ModernEngine.dir/src/OBJLoader.cpp.o.d"
|
||||
"/Users/will/Documents/zoomengine/src/OBJModelPrimitive.cpp" "CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.o" "gcc" "CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.o.d"
|
||||
"/Users/will/Documents/zoomengine/src/Physics.cpp" "CMakeFiles/ModernEngine.dir/src/Physics.cpp.o" "gcc" "CMakeFiles/ModernEngine.dir/src/Physics.cpp.o.d"
|
||||
"/Users/will/Documents/zoomengine/src/Renderer.cpp" "CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o" "gcc" "CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o.d"
|
||||
"/Users/will/Documents/zoomengine/src/ResourceManager.cpp" "CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o" "gcc" "CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o.d"
|
||||
"/Users/will/Documents/zoomengine/src/Scene.cpp" "CMakeFiles/ModernEngine.dir/src/Scene.cpp.o" "gcc" "CMakeFiles/ModernEngine.dir/src/Scene.cpp.o.d"
|
||||
"/Users/will/Documents/zoomengine/src/Shader.cpp" "CMakeFiles/ModernEngine.dir/src/Shader.cpp.o" "gcc" "CMakeFiles/ModernEngine.dir/src/Shader.cpp.o.d"
|
||||
"/Users/will/Documents/zoomengine/src/SimpleTextureLoader.cpp" "CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o" "gcc" "CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o.d"
|
||||
"/Users/will/Documents/zoomengine/src/TextureCache.cpp" "CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o" "gcc" "CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o.d"
|
||||
"/Users/will/Documents/zoomengine/src/Window.cpp" "CMakeFiles/ModernEngine.dir/src/Window.cpp.o" "gcc" "CMakeFiles/ModernEngine.dir/src/Window.cpp.o.d"
|
||||
"/Users/will/Documents/zoomengine/src/main.cpp" "CMakeFiles/ModernEngine.dir/src/main.cpp.o" "gcc" "CMakeFiles/ModernEngine.dir/src/main.cpp.o.d"
|
||||
)
|
||||
|
||||
@@ -170,10 +170,24 @@ CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.s"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/will/Documents/zoomengine/src/OBJModelPrimitive.cpp -o CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.s
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/Physics.cpp.o: CMakeFiles/ModernEngine.dir/flags.make
|
||||
CMakeFiles/ModernEngine.dir/src/Physics.cpp.o: /Users/will/Documents/zoomengine/src/Physics.cpp
|
||||
CMakeFiles/ModernEngine.dir/src/Physics.cpp.o: CMakeFiles/ModernEngine.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object CMakeFiles/ModernEngine.dir/src/Physics.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/ModernEngine.dir/src/Physics.cpp.o -MF CMakeFiles/ModernEngine.dir/src/Physics.cpp.o.d -o CMakeFiles/ModernEngine.dir/src/Physics.cpp.o -c /Users/will/Documents/zoomengine/src/Physics.cpp
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/Physics.cpp.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/ModernEngine.dir/src/Physics.cpp.i"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/will/Documents/zoomengine/src/Physics.cpp > CMakeFiles/ModernEngine.dir/src/Physics.cpp.i
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/Physics.cpp.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/ModernEngine.dir/src/Physics.cpp.s"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/will/Documents/zoomengine/src/Physics.cpp -o CMakeFiles/ModernEngine.dir/src/Physics.cpp.s
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o: CMakeFiles/ModernEngine.dir/flags.make
|
||||
CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o: /Users/will/Documents/zoomengine/src/Renderer.cpp
|
||||
CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o: CMakeFiles/ModernEngine.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building CXX object CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o -MF CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o.d -o CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o -c /Users/will/Documents/zoomengine/src/Renderer.cpp
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/Renderer.cpp.i: cmake_force
|
||||
@@ -187,7 +201,7 @@ CMakeFiles/ModernEngine.dir/src/Renderer.cpp.s: cmake_force
|
||||
CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o: CMakeFiles/ModernEngine.dir/flags.make
|
||||
CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o: /Users/will/Documents/zoomengine/src/ResourceManager.cpp
|
||||
CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o: CMakeFiles/ModernEngine.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building CXX object CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Building CXX object CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o -MF CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o.d -o CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o -c /Users/will/Documents/zoomengine/src/ResourceManager.cpp
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.i: cmake_force
|
||||
@@ -201,7 +215,7 @@ CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.s: cmake_force
|
||||
CMakeFiles/ModernEngine.dir/src/Scene.cpp.o: CMakeFiles/ModernEngine.dir/flags.make
|
||||
CMakeFiles/ModernEngine.dir/src/Scene.cpp.o: /Users/will/Documents/zoomengine/src/Scene.cpp
|
||||
CMakeFiles/ModernEngine.dir/src/Scene.cpp.o: CMakeFiles/ModernEngine.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Building CXX object CMakeFiles/ModernEngine.dir/src/Scene.cpp.o"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_11) "Building CXX object CMakeFiles/ModernEngine.dir/src/Scene.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/ModernEngine.dir/src/Scene.cpp.o -MF CMakeFiles/ModernEngine.dir/src/Scene.cpp.o.d -o CMakeFiles/ModernEngine.dir/src/Scene.cpp.o -c /Users/will/Documents/zoomengine/src/Scene.cpp
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/Scene.cpp.i: cmake_force
|
||||
@@ -215,7 +229,7 @@ CMakeFiles/ModernEngine.dir/src/Scene.cpp.s: cmake_force
|
||||
CMakeFiles/ModernEngine.dir/src/Shader.cpp.o: CMakeFiles/ModernEngine.dir/flags.make
|
||||
CMakeFiles/ModernEngine.dir/src/Shader.cpp.o: /Users/will/Documents/zoomengine/src/Shader.cpp
|
||||
CMakeFiles/ModernEngine.dir/src/Shader.cpp.o: CMakeFiles/ModernEngine.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_11) "Building CXX object CMakeFiles/ModernEngine.dir/src/Shader.cpp.o"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_12) "Building CXX object CMakeFiles/ModernEngine.dir/src/Shader.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/ModernEngine.dir/src/Shader.cpp.o -MF CMakeFiles/ModernEngine.dir/src/Shader.cpp.o.d -o CMakeFiles/ModernEngine.dir/src/Shader.cpp.o -c /Users/will/Documents/zoomengine/src/Shader.cpp
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/Shader.cpp.i: cmake_force
|
||||
@@ -229,7 +243,7 @@ CMakeFiles/ModernEngine.dir/src/Shader.cpp.s: cmake_force
|
||||
CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o: CMakeFiles/ModernEngine.dir/flags.make
|
||||
CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o: /Users/will/Documents/zoomengine/src/SimpleTextureLoader.cpp
|
||||
CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o: CMakeFiles/ModernEngine.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_12) "Building CXX object CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_13) "Building CXX object CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o -MF CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o.d -o CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o -c /Users/will/Documents/zoomengine/src/SimpleTextureLoader.cpp
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.i: cmake_force
|
||||
@@ -240,10 +254,24 @@ CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.s"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/will/Documents/zoomengine/src/SimpleTextureLoader.cpp -o CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.s
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o: CMakeFiles/ModernEngine.dir/flags.make
|
||||
CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o: /Users/will/Documents/zoomengine/src/TextureCache.cpp
|
||||
CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o: CMakeFiles/ModernEngine.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_14) "Building CXX object CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o -MF CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o.d -o CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o -c /Users/will/Documents/zoomengine/src/TextureCache.cpp
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.i"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/will/Documents/zoomengine/src/TextureCache.cpp > CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.i
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.s"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/will/Documents/zoomengine/src/TextureCache.cpp -o CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.s
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/Window.cpp.o: CMakeFiles/ModernEngine.dir/flags.make
|
||||
CMakeFiles/ModernEngine.dir/src/Window.cpp.o: /Users/will/Documents/zoomengine/src/Window.cpp
|
||||
CMakeFiles/ModernEngine.dir/src/Window.cpp.o: CMakeFiles/ModernEngine.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_13) "Building CXX object CMakeFiles/ModernEngine.dir/src/Window.cpp.o"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_15) "Building CXX object CMakeFiles/ModernEngine.dir/src/Window.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/ModernEngine.dir/src/Window.cpp.o -MF CMakeFiles/ModernEngine.dir/src/Window.cpp.o.d -o CMakeFiles/ModernEngine.dir/src/Window.cpp.o -c /Users/will/Documents/zoomengine/src/Window.cpp
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/Window.cpp.i: cmake_force
|
||||
@@ -257,7 +285,7 @@ CMakeFiles/ModernEngine.dir/src/Window.cpp.s: cmake_force
|
||||
CMakeFiles/ModernEngine.dir/src/main.cpp.o: CMakeFiles/ModernEngine.dir/flags.make
|
||||
CMakeFiles/ModernEngine.dir/src/main.cpp.o: /Users/will/Documents/zoomengine/src/main.cpp
|
||||
CMakeFiles/ModernEngine.dir/src/main.cpp.o: CMakeFiles/ModernEngine.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_14) "Building CXX object CMakeFiles/ModernEngine.dir/src/main.cpp.o"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_16) "Building CXX object CMakeFiles/ModernEngine.dir/src/main.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/ModernEngine.dir/src/main.cpp.o -MF CMakeFiles/ModernEngine.dir/src/main.cpp.o.d -o CMakeFiles/ModernEngine.dir/src/main.cpp.o -c /Users/will/Documents/zoomengine/src/main.cpp
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/main.cpp.i: cmake_force
|
||||
@@ -271,7 +299,7 @@ CMakeFiles/ModernEngine.dir/src/main.cpp.s: cmake_force
|
||||
CMakeFiles/ModernEngine.dir/src/glad.c.o: CMakeFiles/ModernEngine.dir/flags.make
|
||||
CMakeFiles/ModernEngine.dir/src/glad.c.o: /Users/will/Documents/zoomengine/src/glad.c
|
||||
CMakeFiles/ModernEngine.dir/src/glad.c.o: CMakeFiles/ModernEngine.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_15) "Building C object CMakeFiles/ModernEngine.dir/src/glad.c.o"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_17) "Building C object CMakeFiles/ModernEngine.dir/src/glad.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/ModernEngine.dir/src/glad.c.o -MF CMakeFiles/ModernEngine.dir/src/glad.c.o.d -o CMakeFiles/ModernEngine.dir/src/glad.c.o -c /Users/will/Documents/zoomengine/src/glad.c
|
||||
|
||||
CMakeFiles/ModernEngine.dir/src/glad.c.i: cmake_force
|
||||
@@ -291,11 +319,13 @@ ModernEngine_OBJECTS = \
|
||||
"CMakeFiles/ModernEngine.dir/src/Mesh.cpp.o" \
|
||||
"CMakeFiles/ModernEngine.dir/src/OBJLoader.cpp.o" \
|
||||
"CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.o" \
|
||||
"CMakeFiles/ModernEngine.dir/src/Physics.cpp.o" \
|
||||
"CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o" \
|
||||
"CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o" \
|
||||
"CMakeFiles/ModernEngine.dir/src/Scene.cpp.o" \
|
||||
"CMakeFiles/ModernEngine.dir/src/Shader.cpp.o" \
|
||||
"CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o" \
|
||||
"CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o" \
|
||||
"CMakeFiles/ModernEngine.dir/src/Window.cpp.o" \
|
||||
"CMakeFiles/ModernEngine.dir/src/main.cpp.o" \
|
||||
"CMakeFiles/ModernEngine.dir/src/glad.c.o"
|
||||
@@ -310,18 +340,20 @@ ModernEngine: CMakeFiles/ModernEngine.dir/src/LevelEditor.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/Mesh.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/OBJLoader.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/Physics.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/Scene.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/Shader.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/Window.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/main.cpp.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/src/glad.c.o
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/build.make
|
||||
ModernEngine: /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenGL.framework
|
||||
ModernEngine: CMakeFiles/ModernEngine.dir/link.txt
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_16) "Linking CXX executable ModernEngine"
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/Users/will/Documents/zoomengine/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_18) "Linking CXX executable ModernEngine"
|
||||
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/ModernEngine.dir/link.txt --verbose=$(VERBOSE)
|
||||
|
||||
# Rule to build all files generated by this target.
|
||||
|
||||
@@ -13,6 +13,8 @@ file(REMOVE_RECURSE
|
||||
"CMakeFiles/ModernEngine.dir/src/OBJLoader.cpp.o.d"
|
||||
"CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.o"
|
||||
"CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.o.d"
|
||||
"CMakeFiles/ModernEngine.dir/src/Physics.cpp.o"
|
||||
"CMakeFiles/ModernEngine.dir/src/Physics.cpp.o.d"
|
||||
"CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o"
|
||||
"CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o.d"
|
||||
"CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o"
|
||||
@@ -23,6 +25,8 @@ file(REMOVE_RECURSE
|
||||
"CMakeFiles/ModernEngine.dir/src/Shader.cpp.o.d"
|
||||
"CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o"
|
||||
"CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o.d"
|
||||
"CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o"
|
||||
"CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o.d"
|
||||
"CMakeFiles/ModernEngine.dir/src/Window.cpp.o"
|
||||
"CMakeFiles/ModernEngine.dir/src/Window.cpp.o.d"
|
||||
"CMakeFiles/ModernEngine.dir/src/glad.c.o"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
/usr/bin/c++ -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/ModernEngine.dir/src/Camera.cpp.o CMakeFiles/ModernEngine.dir/src/Engine.cpp.o CMakeFiles/ModernEngine.dir/src/Input.cpp.o CMakeFiles/ModernEngine.dir/src/LevelEditor.cpp.o CMakeFiles/ModernEngine.dir/src/Mesh.cpp.o CMakeFiles/ModernEngine.dir/src/OBJLoader.cpp.o CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.o CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o CMakeFiles/ModernEngine.dir/src/Scene.cpp.o CMakeFiles/ModernEngine.dir/src/Shader.cpp.o CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o CMakeFiles/ModernEngine.dir/src/Window.cpp.o CMakeFiles/ModernEngine.dir/src/main.cpp.o CMakeFiles/ModernEngine.dir/src/glad.c.o -o ModernEngine -L/opt/homebrew/Cellar/glfw/3.4/lib -Wl,-rpath,/opt/homebrew/Cellar/glfw/3.4/lib -framework OpenGL -lglfw -framework Cocoa -framework IOKit -framework CoreVideo -framework QuartzCore -framework AudioToolbox -framework CoreAudio
|
||||
/usr/bin/c++ -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/ModernEngine.dir/src/Camera.cpp.o CMakeFiles/ModernEngine.dir/src/Engine.cpp.o CMakeFiles/ModernEngine.dir/src/Input.cpp.o CMakeFiles/ModernEngine.dir/src/LevelEditor.cpp.o CMakeFiles/ModernEngine.dir/src/Mesh.cpp.o CMakeFiles/ModernEngine.dir/src/OBJLoader.cpp.o CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.o CMakeFiles/ModernEngine.dir/src/Physics.cpp.o CMakeFiles/ModernEngine.dir/src/Renderer.cpp.o CMakeFiles/ModernEngine.dir/src/ResourceManager.cpp.o CMakeFiles/ModernEngine.dir/src/Scene.cpp.o CMakeFiles/ModernEngine.dir/src/Shader.cpp.o CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.o CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o CMakeFiles/ModernEngine.dir/src/Window.cpp.o CMakeFiles/ModernEngine.dir/src/main.cpp.o CMakeFiles/ModernEngine.dir/src/glad.c.o -o ModernEngine -L/opt/homebrew/Cellar/glfw/3.4/lib -Wl,-rpath,/opt/homebrew/Cellar/glfw/3.4/lib -framework OpenGL -lglfw -framework Cocoa -framework IOKit -framework CoreVideo -framework QuartzCore -framework AudioToolbox -framework CoreAudio
|
||||
|
||||
@@ -14,4 +14,6 @@ CMAKE_PROGRESS_13 = 13
|
||||
CMAKE_PROGRESS_14 = 14
|
||||
CMAKE_PROGRESS_15 = 15
|
||||
CMAKE_PROGRESS_16 = 16
|
||||
CMAKE_PROGRESS_17 = 17
|
||||
CMAKE_PROGRESS_18 = 18
|
||||
|
||||
|
||||
Binary file not shown.
@@ -1387,11 +1387,69 @@ CMakeFiles/ModernEngine.dir/src/Engine.cpp.o: \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/netinet6/in6.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/poll.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/poll.h \
|
||||
/opt/homebrew/include/glm/gtc/matrix_access.hpp \
|
||||
/Users/will/Documents/zoomengine/src/Physics.h \
|
||||
/opt/homebrew/include/glm/gtc/quaternion.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../gtc/constants.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../gtc/matrix_transform.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/qualifier.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/vector_relational.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/type_float.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/setup.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/quaternion_geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/../geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/../ext/vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/quaternion_geometric.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_common.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_float.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/type_quat.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_mat3x3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_mat4x4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_vec3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_vec4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/../vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_relational.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../gtc/constants.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../gtc/matrix_transform.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/type_quat.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../trigonometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_float_precision.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_double.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_double_precision.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_trigonometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/scalar_constants.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_trigonometric.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_transform.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_transform.inl \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_mat3x3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_mat4x4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_vec3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_vec4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/quaternion.inl \
|
||||
/opt/homebrew/include/glm/gtc/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/epsilon.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/setup.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/qualifier.hpp \
|
||||
/opt/homebrew/include/glm/gtc/epsilon.inl \
|
||||
/opt/homebrew/include/glm/gtc/../vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/matrix_access.hpp \
|
||||
/opt/homebrew/include/glm/gtc/matrix_access.inl \
|
||||
/Users/will/Documents/zoomengine/src/Input.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/unordered_set \
|
||||
/Users/will/Documents/zoomengine/src/OBJModelPrimitive.h \
|
||||
/Users/will/Documents/zoomengine/src/OBJLoader.h \
|
||||
/Users/will/Documents/zoomengine/src/SimpleTextureLoader.h
|
||||
/Users/will/Documents/zoomengine/src/SimpleTextureLoader.h \
|
||||
/Users/will/Documents/zoomengine/src/TextureCache.h
|
||||
|
||||
@@ -1387,6 +1387,63 @@ CMakeFiles/ModernEngine.dir/src/LevelEditor.cpp.o: \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/netinet6/in6.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/poll.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/poll.h \
|
||||
/opt/homebrew/include/glm/gtc/matrix_access.hpp \
|
||||
/Users/will/Documents/zoomengine/src/Physics.h \
|
||||
/opt/homebrew/include/glm/gtc/quaternion.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../gtc/constants.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../gtc/matrix_transform.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/qualifier.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/vector_relational.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/type_float.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/setup.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/quaternion_geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/../geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/../ext/vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/quaternion_geometric.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_common.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_float.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/type_quat.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_mat3x3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_mat4x4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_vec3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_vec4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/../vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_relational.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../gtc/constants.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../gtc/matrix_transform.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/type_quat.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../trigonometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_float_precision.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_double.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_double_precision.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_trigonometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/scalar_constants.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_trigonometric.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_transform.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_transform.inl \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_mat3x3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_mat4x4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_vec3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_vec4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/quaternion.inl \
|
||||
/opt/homebrew/include/glm/gtc/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/epsilon.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/setup.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/qualifier.hpp \
|
||||
/opt/homebrew/include/glm/gtc/epsilon.inl \
|
||||
/opt/homebrew/include/glm/gtc/../vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/matrix_access.hpp \
|
||||
/opt/homebrew/include/glm/gtc/matrix_access.inl
|
||||
|
||||
Binary file not shown.
@@ -1388,8 +1388,65 @@ CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.o: \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/netinet6/in6.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/poll.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/poll.h \
|
||||
/opt/homebrew/include/glm/gtc/matrix_access.hpp \
|
||||
/Users/will/Documents/zoomengine/src/Physics.h \
|
||||
/opt/homebrew/include/glm/gtc/quaternion.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../gtc/constants.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../gtc/matrix_transform.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/qualifier.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/vector_relational.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/type_float.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/setup.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/quaternion_geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/../geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/../ext/vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/quaternion_geometric.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_common.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_float.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/type_quat.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_mat3x3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_mat4x4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_vec3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_vec4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/../vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_relational.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../gtc/constants.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../gtc/matrix_transform.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/type_quat.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../trigonometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_float_precision.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_double.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_double_precision.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_trigonometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/scalar_constants.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_trigonometric.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_transform.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_transform.inl \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_mat3x3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_mat4x4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_vec3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_vec4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/quaternion.inl \
|
||||
/opt/homebrew/include/glm/gtc/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/epsilon.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/setup.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/qualifier.hpp \
|
||||
/opt/homebrew/include/glm/gtc/epsilon.inl \
|
||||
/opt/homebrew/include/glm/gtc/../vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/matrix_access.hpp \
|
||||
/opt/homebrew/include/glm/gtc/matrix_access.inl \
|
||||
/Users/will/Documents/zoomengine/src/OBJLoader.h \
|
||||
/Users/will/Documents/zoomengine/src/SimpleTextureLoader.h
|
||||
|
||||
BIN
build/CMakeFiles/ModernEngine.dir/src/Physics.cpp.o
Normal file
BIN
build/CMakeFiles/ModernEngine.dir/src/Physics.cpp.o
Normal file
Binary file not shown.
1095
build/CMakeFiles/ModernEngine.dir/src/Physics.cpp.o.d
Normal file
1095
build/CMakeFiles/ModernEngine.dir/src/Physics.cpp.o.d
Normal file
File diff suppressed because it is too large
Load Diff
BIN
build/CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o
Normal file
BIN
build/CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o
Normal file
Binary file not shown.
867
build/CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o.d
Normal file
867
build/CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o.d
Normal file
@@ -0,0 +1,867 @@
|
||||
CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o: \
|
||||
/Users/will/Documents/zoomengine/src/TextureCache.cpp \
|
||||
/Users/will/Documents/zoomengine/src/TextureCache.h \
|
||||
/Users/will/Documents/zoomengine/include/glad.h \
|
||||
/Users/will/Documents/zoomengine/include/KHR/khrplatform.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stdint.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__config \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__config_site \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__configuration/abi.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__configuration/compiler.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__configuration/platform.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__configuration/availability.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__configuration/language.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__configuration/experimental.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__configuration/hardening.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/stdint.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdint.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int8_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int16_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int32_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_int64_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint8_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint16_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint32_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uint64_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/ptrcheck.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_types.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/arm/_types.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_types.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_intptr_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uintptr_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_intmax_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_uintmax_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/string \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/max.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/comp.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/desugars_to.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_integral.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/integral_constant.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/remove_cv.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/comp_ref_type.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__assert \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__assertion_handler \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__log_hardening_failure \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__verbose_abort \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__verbose_trap \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/declval.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/max_element.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/iterator_traits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/arithmetic.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_floating_point.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_signed.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_arithmetic.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/constructible.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/convertible_to.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_convertible.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/destructible.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_nothrow_destructible.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__cstddef/size_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_destructible.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_function.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_reference.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/remove_all_extents.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_constructible.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/add_reference.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/copyable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/assignable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/common_reference_with.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/same_as.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_same.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/common_reference.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/add_pointer.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_referenceable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/void_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_void.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/remove_reference.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/common_type.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/conditional.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/decay.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/remove_cvref.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/type_identity.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/empty.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/copy_cv.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/copy_cvref.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/make_const_lvalue_ref.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/forward.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/movable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/swappable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/class_or_enum.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_class.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_enum.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_union.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/extent.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_nothrow_assignable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_nothrow_constructible.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/exchange.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/move.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__undef_macros \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_object.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/equality_comparable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/boolean_testable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/totally_ordered.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__cstddef/ptrdiff_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/pair.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/tuple.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/incrementable_traits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_primary_template.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/enable_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_valid_expansion.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/make_signed.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/type_list.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/readable_traits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_array.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/remove_extent.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__tuple/tuple_element.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__tuple/tuple_indices.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/integer_sequence.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__tuple/tuple_types.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/detected_or.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/disjunction.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/nat.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/remove_const.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_callable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/initializer_list \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/version \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/min.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/min_element.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/identity.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/functional.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/invoke.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_base_of.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_core_convertible.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_member_pointer.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_reference_wrapper.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/remove.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/find.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/find_segment_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/segmented_iterator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/unwrap_iter.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/pointer_traits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/addressof.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/conjunction.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__bit/countr.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/integer_traits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/limits \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__bit/invert_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/bit_reference.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__string/constexpr_c_functions.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/construct_at.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__new/placement_new_delete.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/datasizeof.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_always_bitcastable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_trivially_copyable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cstdint \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_assignable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_constant_evaluated.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_equality_comparable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_trivially_lexicographically_comparable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/byte.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_unsigned.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/element_count.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/is_pointer_in_range.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/is_valid_range.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cwchar \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cwctype \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cctype \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/ctype.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/ctype.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_ctype.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_bounds.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/runetype.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_size_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ct_rune_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rune_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wchar_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_wint_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/wctype.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/wctype.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_wctype.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_wctrans_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/__wctype.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/___wctype.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_wctype_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/wchar.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/wchar.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_wchar.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/Availability.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/AvailabilityVersions.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/AvailabilityInternal.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/AvailabilityInternalLegacy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_null.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mbstate_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/types.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/arm/types.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int8_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int16_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int32_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int64_t.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/stdarg.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stdarg_header_macro.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stdarg___gnuc_va_list.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stdarg_va_list.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stdarg_va_arg.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stdarg___va_copy.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stdarg_va_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stdio.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_va_list.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stdio.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_printf.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_seek_set.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_ctermid.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_off_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ssize_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/time.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_time.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_clock_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_time_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timespec.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__mbstate_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stddef.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/stddef.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stddef.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stddef_header_macro.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stddef_ptrdiff_t.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stddef_size_t.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stddef_rsize_t.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stddef_wchar_t.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stddef_null.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stddef_nullptr_t.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stddef_max_align_t.h \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/__stddef_offsetof.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/find_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/remove_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__debug_utils/sanitizers.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/enable_insertable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/hash.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__cstddef/nullptr_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/unary_function.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_unqualified.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/underlying_type.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/pair.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/common_comparison_category.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/ordering.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/synth_three_way.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/three_way_comparable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/different_from.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/array.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__tuple/tuple_like_no_subrange.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/complex.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__tuple/tuple_size.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_const.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_volatile.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_implicitly_default_constructible.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_replaceable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_swappable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_trivially_relocatable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/unwrap_ref.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/piecewise_construct.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/swap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cstring \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/string.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/string.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_string.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_rsize_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_errno_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_strings.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/string.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/memory.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/memory_resource.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ios/fpos.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/ios.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/bounded_iter.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/distance.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/concepts.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/derived_from.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/invocable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/invoke.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/predicate.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/regular.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/semiregular.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__concepts/relation.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/iter_move.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_pointer.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ranges/access.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ranges/enable_borrowed_range.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/auto_cast.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ranges/concepts.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ranges/data.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/remove_pointer.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ranges/enable_view.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ranges/size.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/make_unsigned.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/reverse_iterator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/compare_three_way_result.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/advance.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/convert_to_integral.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/unreachable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/iter_swap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/iterator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/next.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/prev.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ranges/subrange.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/subrange.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ranges/dangling.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ranges/view_interface.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ranges/empty.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/wrap_iter.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/allocate_at_least.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/allocator_traits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_empty.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/allocator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__new/allocate.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__cstddef/max_align_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__new/align_val_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__new/global_new_delete.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__new/exceptions.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__exception/exception.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stdlib.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdlib.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdlib.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/wait.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_pid_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_id_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/signal.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/appleapiopts.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/signal.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/arm/signal.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_mcontext.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/arm/_mcontext.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/machine/_structs.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/arm/_structs.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_attr_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigaltstack.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ucontext.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_sigset_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_uid_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/resource.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_timeval.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/arm/endian.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/_endian.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/arm/_endian.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/__endian.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/_OSByteOrder.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libkern/arm/_OSByteOrder.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/alloca.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_malloc_type.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/malloc/_ptrcheck.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_abort.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_dev_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_mode_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/abs.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__new/nothrow_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__new/global_typed_new_delete.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/compressed_pair.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_final.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/noexcept_move_assign_container.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/swap_allocator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory_resource/polymorphic_allocator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__cstddef/byte.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory_resource/memory_resource.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/exception_guard.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/tuple \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/allocator_arg_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/uses_allocator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__tuple/find_index.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__tuple/ignore.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__tuple/make_tuple_types.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__tuple/sfinae_helpers.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__tuple/tuple_like_ext.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/lazy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/maybe_const.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/negation.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/reference_constructs_from_temporary.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/compare \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/compare_partial_order_fallback.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/partial_order.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/compare_three_way.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/weak_order.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/strong_order.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__bit/bit_cast.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/exponential_functions.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/promote.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/traits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/priority_tag.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/compare_strong_order_fallback.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/compare_weak_order_fallback.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__compare/is_eq.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ranges/container_compatible_range.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ranges/from_range.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__string/char_traits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/fill_n.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/find_end.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/iterator_operations.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/iter_swap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_iterator_concept.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/find_first_of.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__std_mbstate_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cstdio \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/iosfwd \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/fstream.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/istream.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/ostream.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/sstream.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/streambuf.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__string/extern_template_lists.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_allocator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_standard_layout.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_trivially_constructible.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/scope_guard.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/climits \
|
||||
/Library/Developer/CommandLineTools/usr/lib/clang/21/include/limits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/limits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/limits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/arm/limits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/arm/_limits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/syslimits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/stdexcept \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/string_view \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/string_view.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/access.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/data.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/empty.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/reverse_access.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/size.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/unordered_map \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/is_permutation.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/is_transparent.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/operations.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/binary_function.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__hash_table \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__bit/countl.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/rounding_functions.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/unique_ptr.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/array_cookie.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_trivially_destructible.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/auto_ptr.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/dependent_type.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_bounded_array.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_unbounded_array.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/private_constructor_tag.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__new/launder.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/can_extract_key.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/remove_const_ref.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/erase_if_container.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/ranges_iterator_traits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__node_handle \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_specialization.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/optional \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_scalar.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_null_pointer.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/is_trivially_assignable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/in_place.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/container_traits.h \
|
||||
/Users/will/Documents/zoomengine/src/SimpleTextureLoader.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cmath \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/hypot.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/min_max.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/roots.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/special_functions.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/copysign.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/math.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/math.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/error_functions.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/fdim.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/fma.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/gamma.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/hyperbolic_functions.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/inverse_hyperbolic_functions.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/inverse_trigonometric_functions.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/logarithms.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/modulo.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/remainder.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__math/trigonometric_functions.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/filesystem \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/copy_options.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/directory_entry.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__chrono/time_point.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__chrono/duration.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/ratio \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/file_status.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/file_type.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/perms.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/file_time_type.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__chrono/file_clock.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__chrono/system_clock.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/ctime \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/filesystem_error.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/path.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/replace.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/replace_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/back_insert_iterator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/iomanip \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/istreambuf_iterator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/default_sentinel.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/money.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/copy_move_common.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/unwrap_range.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/for_each_segment.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/equal.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/reverse.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/locale_base_api.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/support/apple.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/support/bsd_like.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/clocale \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/locale.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_locale.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_locale_posix2008.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_locale_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/xlocale.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_xlocale.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/__xlocale.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_mb_cur_max.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/xlocale/_ctype.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/xlocale/___wctype.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/xlocale/_stdio.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/xlocale/_stdlib.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/xlocale/_string.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/xlocale/_time.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/xlocale/_wchar.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/xlocale/_wctype.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/shared_count.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/typeinfo \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__mutex/once_flag.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__utility/no_destroy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cstdlib \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cstddef \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/check_grouping.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/ios \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__system_error/error_category.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__system_error/error_code.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__system_error/errc.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cerrno \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/errno.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/errno.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/errno.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__system_error/error_condition.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__system_error/system_error.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__atomic/atomic.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__atomic/atomic_sync.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__atomic/contention_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__atomic/support.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__atomic/support/c11.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__atomic/memory_order.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__atomic/to_gcc_order.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__thread/poll_with_backoff.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__chrono/high_resolution_clock.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__chrono/steady_clock.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__atomic/check_memory_order.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__atomic/is_always_lock_free.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/remove_volatile.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/get_c_locale.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/pad_and_output.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/time.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/scan_keyword.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__ostream/put_character_sequence.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/ostreambuf_iterator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/locale \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/messages.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/nl_types.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_char.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_short.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_u_int.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_caddr_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blkcnt_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_blksize_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_gid_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_addr_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_in_port_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_ino64_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_key_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_nlink_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_useconds_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_suseconds_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_def.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_setsize.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_set.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_clr.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_zero.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_isset.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fd_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_cond_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_condattr_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutex_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_mutexattr_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_once_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlock_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_rwlockattr_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_pthread/_pthread_key_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsblkcnt_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_types/_fsfilcnt_t.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_types/_nl_item.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/num.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__charconv/to_chars_integral.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/copy_n.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__charconv/tables.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__charconv/to_chars_base_10.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__charconv/to_chars_result.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__charconv/traits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/make_32_64_or_128_bit.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/streambuf \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/wbuffer_convert.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale_dir/wstring_convert.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/shared_ptr.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/reference_wrapper.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/weak_result_type.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/allocation_guard.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/allocator_destructor.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/destroy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/uninitialized_algorithms.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/move.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/operations.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/perm_options.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/space_info.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/directory_iterator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/directory_options.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/path_iterator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/recursive_directory_iterator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__filesystem/u8path.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/vector \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__vector/comparison.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/lexicographical_compare.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/mismatch.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/simd_utils.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/aliasing_iterator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/lexicographical_compare_three_way.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/three_way_comp_ref_type.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/vector.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__vector/swap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__vector/vector.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/move_backward.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/copy_backward.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_copy_n.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/in_out_result.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/unreachable_sentinel.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/rotate.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/swap_ranges.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/move_iterator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/move_sentinel.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/temp_value.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/aligned_storage.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__split_buffer \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__vector/container_traits.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__vector/vector_bool.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__bit_reference \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__vector/pmr.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__vector/erase.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__vector/vector_bool_formatter.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/formatter.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/format.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/formatter_bool.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/concepts.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/format_parse_context.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/format_error.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/formatter_integral.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/formatter_output.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_fill_n.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_transform.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/in_in_out_result.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/projected.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/buffer.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/transform.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/format_to_n_result.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/parser_std_format_spec.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/format_arg.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__variant/monostate.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/format_string.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/unicode.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/extended_grapheme_cluster_table.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_upper_bound.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/lower_bound.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/half_positive.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__functional/ranges_operations.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/indic_conjunct_break_table.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/width_estimation_table.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/array \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/static_bounded_iter.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/algorithm \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/adjacent_find.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/all_of.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/any_of.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/binary_search.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/copy_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/count.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__bit/popcount.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/count_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/equal_range.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/upper_bound.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/fill.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/find_if_not.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/for_each.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/generate.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/generate_n.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/includes.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/inplace_merge.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/destruct_n.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/unique_temporary_buffer.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/is_heap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/is_heap_until.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/is_partitioned.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/is_sorted.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/is_sorted_until.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/make_heap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/sift_down.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/merge.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/minmax.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/minmax_element.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/next_permutation.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/none_of.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/nth_element.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/sort.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/partial_sort.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/sort_heap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/pop_heap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/push_heap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__debug_utils/strict_weak_ordering_check.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__debug_utils/randomize_range.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__bit/bit_log2.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__bit/blsr.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/partial_sort_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/make_projected.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/partition.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/partition_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/partition_point.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/prev_permutation.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/remove_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/remove_copy_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/replace_copy_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/replace_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/reverse_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/rotate_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/search.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/search_n.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/set_difference.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/set_intersection.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/set_symmetric_difference.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/set_union.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/shuffle.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__random/uniform_int_distribution.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__random/is_valid.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__random/log2.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/stable_partition.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/stable_sort.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/radix_sort.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__numeric/partial_sum.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/unique.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/unique_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/clamp.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/for_each_n.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/for_each_n_segment.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/pstl.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/sample.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/in_found_result.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/in_fun_result.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/in_in_result.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/in_out_out_result.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/min_max_result.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/out_value_result.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_adjacent_find.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_all_of.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_any_of.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_binary_search.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_clamp.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_contains.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_find.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_find_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/indirectly_comparable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_copy_backward.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_copy_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_count.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_count_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_equal.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_equal_range.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_fill.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_find_end.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_find_first_of.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_find_if_not.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_for_each.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_for_each_n.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_generate.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_generate_n.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_includes.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_inplace_merge.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/sortable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/permutable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_is_heap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_is_heap_until.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_is_partitioned.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_is_permutation.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_is_sorted.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_is_sorted_until.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_lexicographical_compare.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_lower_bound.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_make_heap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_max.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_max_element.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_merge.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/mergeable.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_min.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_min_element.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_minmax.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_minmax_element.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_mismatch.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_move.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_move_backward.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_next_permutation.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_none_of.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_nth_element.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_partial_sort.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_partial_sort_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_partition.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_partition_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_partition_point.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_pop_heap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_prev_permutation.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_push_heap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_remove.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_remove_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_remove_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_remove_copy_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_replace.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_replace_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_replace_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_replace_copy_if.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_reverse.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_reverse_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_rotate.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_rotate_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_sample.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/uniform_random_bit_generator_adaptor.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__random/uniform_random_bit_generator.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_search.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_search_n.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_set_difference.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_set_intersection.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_set_symmetric_difference.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_set_union.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_shuffle.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_sort.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_sort_heap.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_stable_partition.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_stable_sort.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_swap_ranges.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_unique.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_unique_copy.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/shift_left.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/shift_right.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_contains_subrange.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_ends_with.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_starts_with.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_find_last.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__algorithm/ranges_fold.h
|
||||
Binary file not shown.
@@ -1387,12 +1387,70 @@ CMakeFiles/ModernEngine.dir/src/main.cpp.o: \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/netinet6/in6.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/poll.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/poll.h \
|
||||
/opt/homebrew/include/glm/gtc/matrix_access.hpp \
|
||||
/Users/will/Documents/zoomengine/src/Physics.h \
|
||||
/opt/homebrew/include/glm/gtc/quaternion.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../gtc/constants.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../gtc/matrix_transform.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/qualifier.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/vector_relational.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/type_float.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/setup.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/quaternion_geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/../geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/../ext/vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../ext/quaternion_geometric.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_common.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_float.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/type_quat.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_mat3x3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_mat4x4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_vec3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../detail/type_vec4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/../vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_relational.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../gtc/constants.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../gtc/matrix_transform.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/type_quat.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../trigonometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/../detail/../ext/quaternion_geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_float_precision.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_double.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_double_precision.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_geometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_trigonometric.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/scalar_constants.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_trigonometric.inl \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_transform.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../ext/quaternion_transform.inl \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_mat3x3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_mat4x4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_vec3.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/type_vec4.hpp \
|
||||
/opt/homebrew/include/glm/gtc/quaternion.inl \
|
||||
/opt/homebrew/include/glm/gtc/../exponential.hpp \
|
||||
/opt/homebrew/include/glm/gtc/epsilon.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/setup.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../detail/qualifier.hpp \
|
||||
/opt/homebrew/include/glm/gtc/epsilon.inl \
|
||||
/opt/homebrew/include/glm/gtc/../vector_relational.hpp \
|
||||
/opt/homebrew/include/glm/gtc/../common.hpp \
|
||||
/opt/homebrew/include/glm/gtc/matrix_access.hpp \
|
||||
/opt/homebrew/include/glm/gtc/matrix_access.inl \
|
||||
/Users/will/Documents/zoomengine/src/Input.h \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/unordered_set \
|
||||
/Users/will/Documents/zoomengine/src/MainMenu.h \
|
||||
/Users/will/Documents/zoomengine/src/TextureCache.h \
|
||||
/Users/will/Documents/zoomengine/src/LevelEditor.cpp \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/random \
|
||||
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__random/bernoulli_distribution.h \
|
||||
|
||||
@@ -1 +1 @@
|
||||
16
|
||||
18
|
||||
|
||||
@@ -297,6 +297,30 @@ src/OBJModelPrimitive.cpp.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/ModernEngine.dir/build.make CMakeFiles/ModernEngine.dir/src/OBJModelPrimitive.cpp.s
|
||||
.PHONY : src/OBJModelPrimitive.cpp.s
|
||||
|
||||
src/Physics.o: src/Physics.cpp.o
|
||||
.PHONY : src/Physics.o
|
||||
|
||||
# target to build an object file
|
||||
src/Physics.cpp.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/ModernEngine.dir/build.make CMakeFiles/ModernEngine.dir/src/Physics.cpp.o
|
||||
.PHONY : src/Physics.cpp.o
|
||||
|
||||
src/Physics.i: src/Physics.cpp.i
|
||||
.PHONY : src/Physics.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/Physics.cpp.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/ModernEngine.dir/build.make CMakeFiles/ModernEngine.dir/src/Physics.cpp.i
|
||||
.PHONY : src/Physics.cpp.i
|
||||
|
||||
src/Physics.s: src/Physics.cpp.s
|
||||
.PHONY : src/Physics.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/Physics.cpp.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/ModernEngine.dir/build.make CMakeFiles/ModernEngine.dir/src/Physics.cpp.s
|
||||
.PHONY : src/Physics.cpp.s
|
||||
|
||||
src/Renderer.o: src/Renderer.cpp.o
|
||||
.PHONY : src/Renderer.o
|
||||
|
||||
@@ -417,6 +441,30 @@ src/SimpleTextureLoader.cpp.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/ModernEngine.dir/build.make CMakeFiles/ModernEngine.dir/src/SimpleTextureLoader.cpp.s
|
||||
.PHONY : src/SimpleTextureLoader.cpp.s
|
||||
|
||||
src/TextureCache.o: src/TextureCache.cpp.o
|
||||
.PHONY : src/TextureCache.o
|
||||
|
||||
# target to build an object file
|
||||
src/TextureCache.cpp.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/ModernEngine.dir/build.make CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.o
|
||||
.PHONY : src/TextureCache.cpp.o
|
||||
|
||||
src/TextureCache.i: src/TextureCache.cpp.i
|
||||
.PHONY : src/TextureCache.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/TextureCache.cpp.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/ModernEngine.dir/build.make CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.i
|
||||
.PHONY : src/TextureCache.cpp.i
|
||||
|
||||
src/TextureCache.s: src/TextureCache.cpp.s
|
||||
.PHONY : src/TextureCache.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/TextureCache.cpp.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/ModernEngine.dir/build.make CMakeFiles/ModernEngine.dir/src/TextureCache.cpp.s
|
||||
.PHONY : src/TextureCache.cpp.s
|
||||
|
||||
src/Window.o: src/Window.cpp.o
|
||||
.PHONY : src/Window.o
|
||||
|
||||
@@ -519,6 +567,9 @@ help:
|
||||
@echo "... src/OBJModelPrimitive.o"
|
||||
@echo "... src/OBJModelPrimitive.i"
|
||||
@echo "... src/OBJModelPrimitive.s"
|
||||
@echo "... src/Physics.o"
|
||||
@echo "... src/Physics.i"
|
||||
@echo "... src/Physics.s"
|
||||
@echo "... src/Renderer.o"
|
||||
@echo "... src/Renderer.i"
|
||||
@echo "... src/Renderer.s"
|
||||
@@ -534,6 +585,9 @@ help:
|
||||
@echo "... src/SimpleTextureLoader.o"
|
||||
@echo "... src/SimpleTextureLoader.i"
|
||||
@echo "... src/SimpleTextureLoader.s"
|
||||
@echo "... src/TextureCache.o"
|
||||
@echo "... src/TextureCache.i"
|
||||
@echo "... src/TextureCache.s"
|
||||
@echo "... src/Window.o"
|
||||
@echo "... src/Window.i"
|
||||
@echo "... src/Window.s"
|
||||
|
||||
Binary file not shown.
@@ -10,6 +10,9 @@
|
||||
{ "label": "Stress Test", "action": "stress" },
|
||||
{ "label": "Spinning Monkey", "action": "monkey" },
|
||||
{ "label": "Monkey Grid", "action": "monkeygrid" },
|
||||
{ "label": "God Sandbox", "action": "god" },
|
||||
{ "label": "Grass / Pools", "action": "grass" },
|
||||
{ "label": "Sunset Forest", "action": "sunset" },
|
||||
{ "label": "Level Editor", "action": "edit" },
|
||||
{ "label": "Quit", "action": "quit" }
|
||||
]
|
||||
|
||||
@@ -5,32 +5,24 @@ in vec3 Color;
|
||||
|
||||
out vec4 FragColor;
|
||||
|
||||
uniform vec3 uLightPos;
|
||||
uniform vec3 uSunDir;
|
||||
uniform vec3 uSunColor;
|
||||
uniform vec3 uSkyColor;
|
||||
uniform vec3 uGroundColor;
|
||||
uniform vec3 uViewPos;
|
||||
uniform vec3 uLightColor;
|
||||
uniform float uAmbientStrength;
|
||||
uniform float uSpecularStrength;
|
||||
uniform float uShininess;
|
||||
|
||||
void main() {
|
||||
// Normalize the normal vector
|
||||
vec3 norm = normalize(Normal);
|
||||
|
||||
// Ambient lighting
|
||||
vec3 ambient = uAmbientStrength * uLightColor;
|
||||
|
||||
// Diffuse lighting
|
||||
vec3 lightDir = normalize(uLightPos - FragPos);
|
||||
float diff = max(dot(norm, lightDir), 0.0);
|
||||
vec3 diffuse = diff * uLightColor;
|
||||
|
||||
// Specular lighting
|
||||
vec3 viewDir = normalize(uViewPos - FragPos);
|
||||
vec3 reflectDir = reflect(-lightDir, norm);
|
||||
float spec = pow(max(dot(viewDir, reflectDir), 0.0), uShininess);
|
||||
vec3 specular = uSpecularStrength * spec * uLightColor;
|
||||
|
||||
// Combine results
|
||||
vec3 result = (ambient + diffuse + specular) * Color;
|
||||
vec3 N = normalize(Normal);
|
||||
float up = 0.5 + 0.5 * N.y;
|
||||
vec3 ambient = mix(uGroundColor, uSkyColor, up);
|
||||
float NdotL = max(dot(N, uSunDir), 0.0);
|
||||
vec3 diffuse = NdotL * uSunColor;
|
||||
vec3 V = normalize(uViewPos - FragPos);
|
||||
vec3 H = normalize(uSunDir + V);
|
||||
float spec = pow(max(dot(N, H), 0.0), uShininess) * (NdotL > 0.0 ? 1.0 : 0.0);
|
||||
vec3 specular = uSpecularStrength * spec * uSunColor;
|
||||
vec3 result = (ambient + diffuse) * Color + specular;
|
||||
FragColor = vec4(result, 1.0);
|
||||
}
|
||||
|
||||
27
build/worlds/desert.json
Normal file
27
build/worlds/desert.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"version":1,
|
||||
"clear_color":[0.98,0.75,0.5],
|
||||
"camera":{"position":[18,7,18],"target":[0,2,0]},
|
||||
"objects":[
|
||||
{"action":"create","type":"cylinder","id":"cactus5_body","position":[15,1.6,-8],"height":3.2,"scale":[1,1,1],"color":[0.26,0.5,0.24],"rotation":[0,0,0],"radius":0.42},
|
||||
{"action":"create","type":"cylinder","id":"cactus3_armR","position":[10.7,2,2],"height":1.2,"scale":[1,1,1],"color":[0.28,0.52,0.26],"rotation":[0,0,0],"radius":0.2},
|
||||
{"action":"create","type":"cylinder","id":"cactus3_body","position":[10,1.5,2],"height":3,"scale":[1,1,1],"color":[0.28,0.52,0.26],"rotation":[0,0,0],"radius":0.4},
|
||||
{"action":"create","type":"cylinder","id":"cactus4_armL","position":[-12.9,2.8,4],"height":1.6,"scale":[1,1,1],"color":[0.24,0.5,0.24],"rotation":[0,0,0],"radius":0.25},
|
||||
{"action":"create","type":"cylinder","id":"cactus2_armL","position":[-6.8,2.3,-7],"height":1.4,"scale":[1,1,1],"color":[0.22,0.48,0.22],"rotation":[0,0,0],"radius":0.22},
|
||||
{"action":"create","type":"cylinder","id":"cactus2_body","position":[-6,1.8,-7],"height":3.6,"scale":[1,1,1],"color":[0.22,0.48,0.22],"rotation":[0,0,0],"radius":0.45},
|
||||
{"action":"create","type":"cylinder","id":"cactus1_body","position":[2,2,-5],"height":4,"scale":[1,1,1],"color":[0.25,0.5,0.25],"rotation":[0,0,0],"radius":0.5},
|
||||
{"action":"create","type":"cylinder","id":"cactus4_armR","position":[-11.1,3.1,4],"height":1.3,"scale":[1,1,1],"color":[0.24,0.5,0.24],"rotation":[0,0,0],"radius":0.22},
|
||||
{"action":"create","type":"sphere","id":"rock5","position":[12,0.4,8],"scale":[1,0.7,1.1],"color":[0.48,0.36,0.28],"rotation":[0,0,0]},
|
||||
{"action":"create","type":"cylinder","id":"cactus6_body","position":[-3,1.3,11],"height":2.6,"scale":[1,1,1],"color":[0.25,0.48,0.25],"rotation":[0,0,0],"radius":0.35},
|
||||
{"action":"create","type":"cylinder","id":"cactus1_armL","position":[1.3,2.5,-5],"height":1.5,"scale":[1,1,1],"color":[0.25,0.5,0.25],"rotation":[0,0,0],"radius":0.25},
|
||||
{"action":"create","type":"cylinder","id":"cactus4_body","position":[-12,2.2,4],"height":4.4,"scale":[1,1,1],"color":[0.24,0.5,0.24],"rotation":[0,0,0],"radius":0.55},
|
||||
{"action":"create","type":"sphere","id":"rock2","position":[-4,0.3,6],"scale":[0.9,0.6,0.9],"color":[0.45,0.35,0.28],"rotation":[0,0,0]},
|
||||
{"action":"create","type":"sphere","id":"rock1","position":[5,0.4,3],"scale":[1.2,0.8,1],"color":[0.5,0.38,0.3],"rotation":[0,0,0]},
|
||||
{"action":"create","type":"sphere","id":"rock3","position":[8,0.5,-4],"scale":[1.5,1,1.3],"color":[0.55,0.42,0.32],"rotation":[0,0,0]},
|
||||
{"action":"create","type":"sphere","id":"sun","position":[-20,12,-35],"scale":[5,5,5],"color":[1,0.85,0.55],"rotation":[0,0,0]},
|
||||
{"action":"create","type":"cylinder","id":"cactus1_armR","position":[2.7,2.8,-5],"height":1.3,"scale":[1,1,1],"color":[0.25,0.5,0.25],"rotation":[0,0,0],"radius":0.25},
|
||||
{"action":"create","type":"sphere","id":"rock6","position":[-14,0.4,10],"scale":[1.3,0.9,1.2],"color":[0.52,0.4,0.3],"rotation":[0,0,0]},
|
||||
{"action":"create","type":"sphere","id":"rock4","position":[-9,0.3,-2],"scale":[0.8,0.5,0.8],"color":[0.5,0.4,0.3],"rotation":[0,0,0]},
|
||||
{"action":"create","type":"terrain","id":"sand","max_height":2.5,"position":[0,0,0],"scale":[1,1,1],"resolution":60,"size":80,"color":[0.93,0.78,0.5],"rotation":[0,0,0]}
|
||||
]
|
||||
}
|
||||
1
requirements.txt
Normal file
1
requirements.txt
Normal file
@@ -0,0 +1 @@
|
||||
anthropic>=0.45.0
|
||||
@@ -69,6 +69,15 @@
|
||||
// Spawn text in world (billboard):
|
||||
// {"action":"log","message":"Hello from AI"}
|
||||
//
|
||||
// Save current world to worlds/<name>.json:
|
||||
// {"action":"save_world","name":"desert"}
|
||||
//
|
||||
// Load world from worlds/<name>.json (wipes current):
|
||||
// {"action":"load_world","name":"desert"}
|
||||
//
|
||||
// List available worlds:
|
||||
// {"action":"list_worlds"}
|
||||
//
|
||||
|
||||
struct AgentCommand {
|
||||
json::Value data;
|
||||
|
||||
1785
src/Engine.cpp
1785
src/Engine.cpp
File diff suppressed because it is too large
Load Diff
181
src/Engine.h
181
src/Engine.h
@@ -11,7 +11,9 @@
|
||||
#include "Settings.h"
|
||||
#include "Audio.h"
|
||||
#include "AgentAPI.h"
|
||||
#include "Physics.h"
|
||||
#include <glm/gtc/matrix_access.hpp>
|
||||
#include <unordered_map>
|
||||
|
||||
|
||||
// Forward declarations
|
||||
@@ -55,6 +57,8 @@ public:
|
||||
void SetCameraPosition(const glm::vec3& position);
|
||||
void SetCameraTarget(const glm::vec3& target);
|
||||
void SetCameraOrbit(float distance, float angle, float height = 5.0f);
|
||||
const glm::vec3& GetCameraPosition() const { return camera_position_; }
|
||||
const glm::vec3& GetCameraTarget() const { return camera_target_; }
|
||||
|
||||
GLuint text_vao = 0, text_vbo = 0;
|
||||
|
||||
@@ -67,25 +71,58 @@ public:
|
||||
private:
|
||||
ThreadPool threadPool_;
|
||||
|
||||
// Culling result structure
|
||||
struct CullingBatch {
|
||||
// Culling result structure — now keyed by (primitive, texture) so batches
|
||||
// can be issued per-texture.
|
||||
struct BatchKey {
|
||||
Primitive* primitive;
|
||||
GLuint texture;
|
||||
GLuint normal_map;
|
||||
glm::vec2 uv_scale;
|
||||
float metallic;
|
||||
float roughness;
|
||||
glm::vec3 emissive;
|
||||
bool operator==(const BatchKey& o) const {
|
||||
return primitive == o.primitive && texture == o.texture
|
||||
&& normal_map == o.normal_map && uv_scale == o.uv_scale
|
||||
&& metallic == o.metallic && roughness == o.roughness
|
||||
&& emissive == o.emissive;
|
||||
}
|
||||
};
|
||||
struct BatchKeyHash {
|
||||
size_t operator()(const BatchKey& k) const noexcept {
|
||||
auto mix = [](size_t a, size_t b) {
|
||||
return a ^ (b + 0x9e3779b9 + (a << 6) + (a >> 2));
|
||||
};
|
||||
size_t h = std::hash<void*>()((void*)k.primitive);
|
||||
h = mix(h, std::hash<GLuint>()(k.texture));
|
||||
h = mix(h, std::hash<GLuint>()(k.normal_map));
|
||||
h = mix(h, std::hash<float>()(k.uv_scale.x));
|
||||
h = mix(h, std::hash<float>()(k.uv_scale.y));
|
||||
h = mix(h, std::hash<float>()(k.metallic));
|
||||
h = mix(h, std::hash<float>()(k.roughness));
|
||||
h = mix(h, std::hash<float>()(k.emissive.x));
|
||||
h = mix(h, std::hash<float>()(k.emissive.y));
|
||||
h = mix(h, std::hash<float>()(k.emissive.z));
|
||||
return h;
|
||||
}
|
||||
};
|
||||
struct CullingBatch {
|
||||
BatchKey key{};
|
||||
std::vector<glm::mat4> modelMatrices;
|
||||
};
|
||||
|
||||
|
||||
using CullingResult = std::vector<CullingBatch>;
|
||||
|
||||
// Helper methods
|
||||
|
||||
CullingResult CullObjectsSubset(
|
||||
const std::vector<GameObject*>& objects,
|
||||
size_t startIdx,
|
||||
size_t startIdx,
|
||||
size_t endIdx,
|
||||
const glm::mat4& viewProjection
|
||||
);
|
||||
|
||||
|
||||
void MergeCullingResults(
|
||||
const std::vector<CullingResult>& results,
|
||||
std::unordered_map<Primitive*, std::vector<glm::mat4>>& outBatches
|
||||
std::unordered_map<BatchKey, std::vector<glm::mat4>, BatchKeyHash>& outBatches
|
||||
);
|
||||
|
||||
static bool CullSphere(const glm::mat4& vp,
|
||||
@@ -149,10 +186,114 @@ protected:
|
||||
// Agent API server
|
||||
AgentAPI agentApi_;
|
||||
std::unordered_map<std::string, std::shared_ptr<GameObject>> namedObjects_;
|
||||
std::unordered_map<std::string, json::Value> namedObjectCreationParams_;
|
||||
glm::vec3 clear_color_ = glm::vec3(0.1f);
|
||||
|
||||
// Physics
|
||||
phys::World physics_;
|
||||
std::unordered_map<std::string, int> bodyHandleByName_;
|
||||
void SyncPhysicsWriteback();
|
||||
|
||||
// Sky / sun
|
||||
glm::vec3 sun_dir_ = glm::normalize(glm::vec3(-0.35f, 0.9f, -0.25f));
|
||||
glm::vec3 sun_color_ = glm::vec3(1.4f, 1.25f, 1.0f);
|
||||
glm::vec3 sky_color_ = glm::vec3(0.55f, 0.68f, 0.85f);
|
||||
glm::vec3 zenith_color_ = glm::vec3(0.35f, 0.5f, 0.78f);
|
||||
glm::vec3 horizon_color_ = glm::vec3(0.75f, 0.82f, 0.92f);
|
||||
glm::vec3 ground_color_ = glm::vec3(0.22f, 0.20f, 0.18f);
|
||||
GLuint sky_program_ = 0;
|
||||
GLuint sky_vao_ = 0;
|
||||
GLuint sky_vbo_ = 0;
|
||||
void InitSky();
|
||||
void RenderSky(const glm::mat4& view, const glm::mat4& proj);
|
||||
|
||||
// Water
|
||||
bool water_enabled_ = false;
|
||||
float water_level_ = 0.0f;
|
||||
float water_amplitude_ = 0.3f;
|
||||
float water_wavelength_ = 8.0f;
|
||||
float water_speed_ = 1.0f;
|
||||
float water_size_ = 120.0f;
|
||||
glm::vec3 water_color_shallow_ = glm::vec3(0.25f, 0.55f, 0.6f);
|
||||
glm::vec3 water_color_deep_ = glm::vec3(0.02f, 0.12f, 0.22f);
|
||||
GLuint water_program_ = 0;
|
||||
GLuint water_vao_ = 0;
|
||||
GLuint water_vbo_ = 0;
|
||||
GLuint water_ebo_ = 0;
|
||||
int water_index_count_ = 0;
|
||||
void InitWater();
|
||||
void RebuildWaterMesh(int resolution);
|
||||
void RenderWater(const glm::mat4& view, const glm::mat4& proj);
|
||||
|
||||
// Secondary water patch — visual-only, localized, at arbitrary height.
|
||||
// Shares the primary water shader but has its own mesh + per-patch params.
|
||||
struct SecWater {
|
||||
bool enabled = false;
|
||||
glm::vec3 center = glm::vec3(0);
|
||||
float size = 40.0f;
|
||||
float level = 5.0f;
|
||||
float amplitude = 0.08f;
|
||||
float wavelength = 5.0f;
|
||||
float speed = 0.6f;
|
||||
glm::vec3 shallow = glm::vec3(0.35f, 0.55f, 0.6f);
|
||||
glm::vec3 deep = glm::vec3(0.05f, 0.15f, 0.22f);
|
||||
GLuint vao = 0, vbo = 0, ebo = 0;
|
||||
int idx_count = 0;
|
||||
};
|
||||
SecWater sec_water_;
|
||||
void RebuildSecWaterMesh(int resolution);
|
||||
void RenderSecWater(const glm::mat4& view, const glm::mat4& proj);
|
||||
|
||||
// Weather — drives wave amplitude, choppiness, sky darkening, current
|
||||
float wind_speed_ = 0.0f;
|
||||
glm::vec2 wind_dir_xz_ = glm::vec2(1.0f, 0.0f); // normalized XZ
|
||||
float storminess_ = 0.0f; // 0 calm, 1 gale
|
||||
float AmpScale() const { return 1.0f + storminess_ * 2.0f; }
|
||||
float ChopScale() const { return 1.0f + storminess_ * 1.5f; }
|
||||
|
||||
// Shadow map (directional sun, single cascade)
|
||||
static constexpr int SHADOW_SIZE = 2048;
|
||||
GLuint shadow_fbo_ = 0;
|
||||
GLuint shadow_map_ = 0;
|
||||
GLuint shadow_program_ = 0;
|
||||
glm::mat4 light_vp_ = glm::mat4(1.0f);
|
||||
float shadow_extent_ = 50.0f; // half-width of ortho frustum
|
||||
void InitShadowMap();
|
||||
void RenderShadowPass();
|
||||
glm::mat4 ComputeLightVP() const;
|
||||
|
||||
// HDR + post-process pipeline
|
||||
static constexpr int MSAA_SAMPLES = 4;
|
||||
GLuint hdr_fbo_ms_ = 0; // multisample render target for scene
|
||||
GLuint hdr_color_ms_ = 0;
|
||||
GLuint hdr_depth_rb_ = 0;
|
||||
GLuint hdr_fbo_ = 0; // resolved single-sample target (read for bloom/composite)
|
||||
GLuint hdr_color_ = 0;
|
||||
int post_w_ = 0, post_h_ = 0; // current FBO size, recreate on mismatch
|
||||
GLuint bloom_fbo_[2] = {0, 0};
|
||||
GLuint bloom_tex_[2] = {0, 0};
|
||||
int bloom_w_ = 0, bloom_h_ = 0;
|
||||
GLuint bloom_extract_program_ = 0;
|
||||
GLuint bloom_blur_program_ = 0;
|
||||
GLuint composite_program_ = 0;
|
||||
GLuint fullscreen_vao_ = 0;
|
||||
// Look controls
|
||||
float exposure_ = 1.0f;
|
||||
float bloom_threshold_ = 1.2f;
|
||||
float bloom_intensity_ = 0.8f;
|
||||
float fog_density_ = 0.0025f;
|
||||
void InitPostFBOs();
|
||||
void EnsurePostFBOs();
|
||||
void InitPostShaders();
|
||||
void RenderBloom();
|
||||
void CompositeToScreen();
|
||||
std::string agentLog_;
|
||||
float agentLogTimer_ = 0.0f;
|
||||
void processAgentCommands();
|
||||
std::string processAgentCommand(const json::Value& cmd);
|
||||
public:
|
||||
std::string saveWorldToFile(const std::string& path);
|
||||
std::string loadWorldFromFile(const std::string& path);
|
||||
|
||||
|
||||
|
||||
@@ -171,6 +312,7 @@ public:
|
||||
virtual GLsizei GetIndexCount() const { return index_count_; }
|
||||
virtual GLsizei GetVertexCount() const { return vertex_count_; }
|
||||
virtual void Bind() const { glBindVertexArray(vao_); }
|
||||
float GetIntrinsicRadius() const { return intrinsic_radius_; }
|
||||
|
||||
|
||||
protected:
|
||||
@@ -181,6 +323,7 @@ protected:
|
||||
GLsizei vertex_count_ = 0;
|
||||
GLenum draw_mode_ = GL_TRIANGLES;
|
||||
glm::vec3 color_;
|
||||
float intrinsic_radius_ = 1.732f; // default: unit-cube corner-to-center
|
||||
};
|
||||
|
||||
// GameObject class
|
||||
@@ -192,6 +335,8 @@ public:
|
||||
float GetBoundingRadius() const;
|
||||
|
||||
glm::vec3 GetPosition() const { return position_; }
|
||||
glm::vec3 GetRotation() const { return rotation_; }
|
||||
glm::vec3 GetScale() const { return scale_; }
|
||||
glm::mat4 GetModelMatrix() const;
|
||||
void Render();
|
||||
void Cleanup();
|
||||
@@ -200,9 +345,29 @@ public:
|
||||
void SetRotation(const glm::vec3& r) { rotation_ = r; }
|
||||
void SetScale(const glm::vec3& s) { scale_ = s; }
|
||||
|
||||
void SetTexture(GLuint tex) { texture_ = tex; }
|
||||
GLuint GetTexture() const { return texture_; }
|
||||
void SetUVScale(const glm::vec2& s) { uv_scale_ = s; }
|
||||
glm::vec2 GetUVScale() const { return uv_scale_; }
|
||||
|
||||
void SetNormalMap(GLuint tex) { normal_map_ = tex; }
|
||||
GLuint GetNormalMap() const { return normal_map_; }
|
||||
void SetMetallic(float v) { metallic_ = v; }
|
||||
float GetMetallic() const { return metallic_; }
|
||||
void SetRoughness(float v) { roughness_ = std::max(0.02f, v); }
|
||||
float GetRoughness() const { return roughness_; }
|
||||
void SetEmissive(const glm::vec3& v) { emissive_ = v; }
|
||||
glm::vec3 GetEmissive() const { return emissive_; }
|
||||
|
||||
private:
|
||||
std::shared_ptr<Primitive> primitive_;
|
||||
glm::vec3 position_;
|
||||
glm::vec3 rotation_;
|
||||
glm::vec3 scale_{1.0f};
|
||||
GLuint texture_ = 0;
|
||||
GLuint normal_map_ = 0;
|
||||
glm::vec2 uv_scale_{1.0f};
|
||||
float metallic_ = 0.0f;
|
||||
float roughness_ = 0.7f;
|
||||
glm::vec3 emissive_ = glm::vec3(0.0f);
|
||||
};
|
||||
|
||||
762
src/Physics.cpp
Normal file
762
src/Physics.cpp
Normal file
@@ -0,0 +1,762 @@
|
||||
#include "Physics.h"
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include <glm/gtc/constants.hpp>
|
||||
|
||||
namespace phys {
|
||||
|
||||
namespace {
|
||||
|
||||
constexpr float kSleepLinearSq = 0.05f * 0.05f;
|
||||
constexpr float kSleepAngularSq = 0.1f * 0.1f;
|
||||
constexpr float kSleepTime = 0.5f;
|
||||
constexpr float kPenetrationSlop = 0.005f;
|
||||
constexpr float kBaumgarte = 0.2f;
|
||||
|
||||
// --- Small helpers -------------------------------------------------------
|
||||
|
||||
glm::mat3 BoxInertiaTensor(float mass, const glm::vec3& h) {
|
||||
// h = half-extents; full size = 2h.
|
||||
float x2 = (2.0f * h.x) * (2.0f * h.x);
|
||||
float y2 = (2.0f * h.y) * (2.0f * h.y);
|
||||
float z2 = (2.0f * h.z) * (2.0f * h.z);
|
||||
float k = mass / 12.0f;
|
||||
return glm::mat3(
|
||||
k * (y2 + z2), 0.0f, 0.0f,
|
||||
0.0f, k * (x2 + z2), 0.0f,
|
||||
0.0f, 0.0f, k * (x2 + y2)
|
||||
);
|
||||
}
|
||||
|
||||
glm::mat3 SphereInertiaTensor(float mass, float radius) {
|
||||
float v = (2.0f / 5.0f) * mass * radius * radius;
|
||||
return glm::mat3(v, 0, 0, 0, v, 0, 0, 0, v);
|
||||
}
|
||||
|
||||
glm::mat3 Inverse3(const glm::mat3& m) {
|
||||
// glm::inverse handles this, but we keep local to make zero-diag safe.
|
||||
glm::mat3 r(0.0f);
|
||||
if (m[0][0] > 0) r[0][0] = 1.0f / m[0][0];
|
||||
if (m[1][1] > 0) r[1][1] = 1.0f / m[1][1];
|
||||
if (m[2][2] > 0) r[2][2] = 1.0f / m[2][2];
|
||||
return r;
|
||||
}
|
||||
|
||||
void RecomputeInvInertiaWorld(Body& b) {
|
||||
if (b.is_static || b.inv_mass == 0.0f) {
|
||||
b.inv_inertia_world = glm::mat3(0.0f);
|
||||
return;
|
||||
}
|
||||
glm::mat3 R = glm::mat3_cast(b.orientation);
|
||||
b.inv_inertia_world = R * b.inv_inertia_local * glm::transpose(R);
|
||||
}
|
||||
|
||||
void ComputeBasis(const glm::vec3& n, glm::vec3& t1, glm::vec3& t2) {
|
||||
if (std::abs(n.x) >= 0.57735f)
|
||||
t1 = glm::normalize(glm::vec3(n.y, -n.x, 0.0f));
|
||||
else
|
||||
t1 = glm::normalize(glm::vec3(0.0f, n.z, -n.y));
|
||||
t2 = glm::cross(n, t1);
|
||||
}
|
||||
|
||||
glm::vec3 VelAtPoint(const Body& b, const glm::vec3& r) {
|
||||
return b.linear_velocity + glm::cross(b.angular_velocity, r);
|
||||
}
|
||||
|
||||
// --- Collision tests -----------------------------------------------------
|
||||
|
||||
// Returns support point of an OBB in world space along direction d.
|
||||
glm::vec3 BoxSupport(const Body& box, const glm::vec3& d) {
|
||||
glm::mat3 R = glm::mat3_cast(box.orientation);
|
||||
glm::vec3 ld = glm::transpose(R) * d;
|
||||
glm::vec3 lp(
|
||||
ld.x >= 0 ? box.half_extents.x : -box.half_extents.x,
|
||||
ld.y >= 0 ? box.half_extents.y : -box.half_extents.y,
|
||||
ld.z >= 0 ? box.half_extents.z : -box.half_extents.z
|
||||
);
|
||||
return box.position + R * lp;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int World::AddBody(const Body& b) {
|
||||
int handle = (int)bodies_.size();
|
||||
bodies_.push_back(b);
|
||||
Body& nb = bodies_.back();
|
||||
nb.handle = handle;
|
||||
nb.alive = true;
|
||||
|
||||
if (nb.is_static) nb.inv_mass = 0.0f;
|
||||
|
||||
if (nb.shape == Shape::Sphere && nb.inv_mass > 0.0f) {
|
||||
float mass = 1.0f / nb.inv_mass;
|
||||
nb.inv_inertia_local = Inverse3(SphereInertiaTensor(mass, nb.half_extents.x));
|
||||
} else if (nb.shape == Shape::Box && nb.inv_mass > 0.0f) {
|
||||
float mass = 1.0f / nb.inv_mass;
|
||||
nb.inv_inertia_local = Inverse3(BoxInertiaTensor(mass, nb.half_extents));
|
||||
} else {
|
||||
nb.inv_inertia_local = glm::mat3(0.0f);
|
||||
}
|
||||
RecomputeInvInertiaWorld(nb);
|
||||
return handle;
|
||||
}
|
||||
|
||||
void World::RemoveBody(int handle) {
|
||||
if (handle < 0 || handle >= (int)bodies_.size()) return;
|
||||
bodies_[handle].alive = false;
|
||||
}
|
||||
|
||||
Body* World::Get(int handle) {
|
||||
if (handle < 0 || handle >= (int)bodies_.size()) return nullptr;
|
||||
return bodies_[handle].alive ? &bodies_[handle] : nullptr;
|
||||
}
|
||||
const Body* World::Get(int handle) const {
|
||||
if (handle < 0 || handle >= (int)bodies_.size()) return nullptr;
|
||||
return bodies_[handle].alive ? &bodies_[handle] : nullptr;
|
||||
}
|
||||
|
||||
void World::Step(float real_dt) {
|
||||
if (!enabled) return;
|
||||
if (real_dt > 0.25f) real_dt = 0.25f; // avoid spiral of death
|
||||
accumulator_ += real_dt;
|
||||
while (accumulator_ >= fixed_dt) {
|
||||
IntegrateForces(fixed_dt);
|
||||
DetectCollisions();
|
||||
PrepareSolver(fixed_dt);
|
||||
WarmStart();
|
||||
for (int i = 0; i < solver_iterations; ++i) SolveVelocities();
|
||||
IntegrateVelocities(fixed_dt);
|
||||
UpdateSleep(fixed_dt);
|
||||
prev_contacts_ = contacts_;
|
||||
accumulator_ -= fixed_dt;
|
||||
}
|
||||
}
|
||||
|
||||
void World::IntegrateForces(float dt) {
|
||||
static const int kBoxSigns[8][3] = {
|
||||
{-1,-1,-1},{ 1,-1,-1},{-1, 1,-1},{ 1, 1,-1},
|
||||
{-1,-1, 1},{ 1,-1, 1},{-1, 1, 1},{ 1, 1, 1}
|
||||
};
|
||||
|
||||
for (auto& b : bodies_) {
|
||||
if (!b.alive || b.is_static || b.inv_mass == 0.0f) continue;
|
||||
if (b.sleeping) continue;
|
||||
|
||||
glm::vec3 net_accel = gravity + b.force_accum * b.inv_mass;
|
||||
glm::vec3 total_torque = b.torque_accum;
|
||||
float submerged_frac_agg = 0.0f;
|
||||
|
||||
if (water_enabled && b.shape != Shape::Plane) {
|
||||
if (b.shape == Shape::Sphere) {
|
||||
float r = b.half_extents.x;
|
||||
float wy = SampleWaterY(b.position.x, b.position.z);
|
||||
float d = wy - (b.position.y - r);
|
||||
if (d > 0.0f) {
|
||||
float h = std::min(d, 2.0f * r);
|
||||
float cap_vol = glm::pi<float>() * h * h * (3.0f * r - h) / 3.0f;
|
||||
float full_vol = (4.0f / 3.0f) * glm::pi<float>() * r * r * r;
|
||||
float frac = cap_vol / full_vol;
|
||||
net_accel += -gravity * water_density * frac;
|
||||
submerged_frac_agg = frac;
|
||||
}
|
||||
} else { // Box — sample 8 corners against the wave surface
|
||||
glm::mat3 R = glm::mat3_cast(b.orientation);
|
||||
float body_mass = 1.0f / b.inv_mass;
|
||||
glm::vec3 total_force(0.0f);
|
||||
float diag_y = 2.0f * b.half_extents.y;
|
||||
int submerged_count = 0;
|
||||
for (int i = 0; i < 8; ++i) {
|
||||
glm::vec3 local = b.half_extents *
|
||||
glm::vec3(kBoxSigns[i][0], kBoxSigns[i][1], kBoxSigns[i][2]);
|
||||
glm::vec3 corner = b.position + R * local;
|
||||
float wy = SampleWaterY(corner.x, corner.z);
|
||||
float d = wy - corner.y;
|
||||
if (d <= 0.0f) continue;
|
||||
++submerged_count;
|
||||
float frac = std::min(1.0f, d / diag_y);
|
||||
submerged_frac_agg += frac / 8.0f;
|
||||
glm::vec3 accel_i = -gravity * water_density * (frac / 8.0f);
|
||||
glm::vec3 force_i = accel_i * body_mass;
|
||||
glm::vec3 r = corner - b.position;
|
||||
total_force += force_i;
|
||||
total_torque += glm::cross(r, force_i);
|
||||
}
|
||||
net_accel += total_force * b.inv_mass;
|
||||
(void)submerged_count;
|
||||
}
|
||||
|
||||
// Surface current from wind
|
||||
if (submerged_frac_agg > 0.0f && wind_speed > 0.0f) {
|
||||
glm::vec3 wind3(wind_dir_xz.x, 0.0f, wind_dir_xz.y);
|
||||
float lw = glm::length(wind3);
|
||||
if (lw > 1e-5f) wind3 /= lw;
|
||||
net_accel += wind3 * wind_speed * current_coef * submerged_frac_agg;
|
||||
}
|
||||
// Directional water flow (rivers, waterfalls)
|
||||
if (submerged_frac_agg > 0.0f && water_flow_speed > 0.0f) {
|
||||
glm::vec3 flow3(water_flow_dir.x, 0.0f, water_flow_dir.y);
|
||||
float lf = glm::length(flow3);
|
||||
if (lf > 1e-5f) flow3 /= lf;
|
||||
net_accel += flow3 * water_flow_speed * submerged_frac_agg;
|
||||
}
|
||||
|
||||
if (submerged_frac_agg > 0.0f) {
|
||||
b.linear_velocity *= std::max(0.0f,
|
||||
1.0f - water_drag_linear * submerged_frac_agg * dt);
|
||||
b.angular_velocity *= std::max(0.0f,
|
||||
1.0f - water_drag_angular * submerged_frac_agg * dt);
|
||||
}
|
||||
}
|
||||
|
||||
b.linear_velocity += net_accel * dt;
|
||||
b.angular_velocity += b.inv_inertia_world * total_torque * dt;
|
||||
b.linear_velocity *= std::max(0.0f, 1.0f - b.linear_damping * dt);
|
||||
b.angular_velocity *= std::max(0.0f, 1.0f - b.angular_damping * dt);
|
||||
b.force_accum = glm::vec3(0.0f);
|
||||
b.torque_accum = glm::vec3(0.0f);
|
||||
}
|
||||
}
|
||||
|
||||
float World::SampleWaterY(float x, float z) const {
|
||||
// MUST stay in sync with the water vertex shader's Gerstner arrays.
|
||||
static const float DIRS[10][2] = {
|
||||
{ 1.00f, 0.00f},
|
||||
{ 0.71f, -0.71f},
|
||||
{-0.41f, 0.91f},
|
||||
{-0.85f, -0.52f},
|
||||
{ 0.30f, 0.95f},
|
||||
{ 0.88f, 0.47f},
|
||||
{-0.94f, 0.33f},
|
||||
{ 0.60f, -0.80f},
|
||||
{-0.15f, -0.99f},
|
||||
{ 0.43f, 0.90f}
|
||||
};
|
||||
static const float AMP_SCALE[10] = {
|
||||
0.70f, 0.46f, 0.32f, 0.25f, 0.18f, 0.14f, 0.11f, 0.08f, 0.06f, 0.05f };
|
||||
static const float LEN_SCALE[10] = {
|
||||
1.00f, 0.77f, 0.59f, 0.46f, 0.36f, 0.28f, 0.22f, 0.17f, 0.13f, 0.10f };
|
||||
static const float SPEED_SCALE[10] = {
|
||||
1.00f, 1.23f, 0.82f, 1.37f, 0.91f, 1.19f, 0.75f, 1.48f, 1.07f, 0.88f };
|
||||
float y = water_level;
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
float dx = DIRS[i][0], dz = DIRS[i][1];
|
||||
float nrm = std::sqrt(dx * dx + dz * dz);
|
||||
dx /= nrm; dz /= nrm;
|
||||
float L = water_wavelength * LEN_SCALE[i];
|
||||
float w = 2.0f * glm::pi<float>() / L;
|
||||
float A = water_amplitude * AMP_SCALE[i] * water_amp_scale;
|
||||
float phi = water_time * water_speed * SPEED_SCALE[i] * std::sqrt(9.81f * w);
|
||||
float theta = (dx * x + dz * z) * w + phi;
|
||||
y += A * std::sin(theta);
|
||||
}
|
||||
return y;
|
||||
}
|
||||
|
||||
void World::DetectCollisions() {
|
||||
contacts_.clear();
|
||||
const int n = (int)bodies_.size();
|
||||
for (int i = 0; i < n; ++i) {
|
||||
if (!bodies_[i].alive) continue;
|
||||
for (int j = i + 1; j < n; ++j) {
|
||||
if (!bodies_[j].alive) continue;
|
||||
const Body& A = bodies_[i];
|
||||
const Body& B = bodies_[j];
|
||||
if (A.is_static && B.is_static) continue;
|
||||
if (A.sleeping && B.sleeping) continue;
|
||||
TestPair(i, j);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void World::TestPair(int ia, int ib) {
|
||||
const Body& A = bodies_[ia];
|
||||
const Body& B = bodies_[ib];
|
||||
// Normalize ordering so Sphere is always 'a' for asymmetric pairs.
|
||||
auto swap01 = [](Shape s0, Shape s1) {
|
||||
return std::make_pair(s0, s1);
|
||||
};
|
||||
auto [sa, sb] = swap01(A.shape, B.shape);
|
||||
|
||||
if (sa == Shape::Sphere && sb == Shape::Sphere) {
|
||||
SphereSphere(A, B, ia, ib);
|
||||
} else if (sa == Shape::Sphere && sb == Shape::Plane) {
|
||||
SpherePlane(A, B, ia, ib);
|
||||
} else if (sa == Shape::Plane && sb == Shape::Sphere) {
|
||||
SpherePlane(B, A, ib, ia);
|
||||
} else if (sa == Shape::Sphere && sb == Shape::Box) {
|
||||
SphereBox(A, B, ia, ib);
|
||||
} else if (sa == Shape::Box && sb == Shape::Sphere) {
|
||||
SphereBox(B, A, ib, ia);
|
||||
} else if (sa == Shape::Box && sb == Shape::Plane) {
|
||||
BoxPlane(A, B, ia, ib);
|
||||
} else if (sa == Shape::Plane && sb == Shape::Box) {
|
||||
BoxPlane(B, A, ib, ia);
|
||||
} else if (sa == Shape::Box && sb == Shape::Box) {
|
||||
BoxBox(A, B, ia, ib);
|
||||
}
|
||||
// Plane-plane intentionally skipped.
|
||||
}
|
||||
|
||||
void World::SphereSphere(const Body& A, const Body& B, int ia, int ib) {
|
||||
glm::vec3 d = B.position - A.position;
|
||||
float r = A.half_extents.x + B.half_extents.x;
|
||||
float d2 = glm::dot(d, d);
|
||||
if (d2 >= r * r) return;
|
||||
float dist = std::sqrt(std::max(d2, 1e-12f));
|
||||
glm::vec3 n = (dist > 1e-6f) ? d / dist : glm::vec3(0.0f, 1.0f, 0.0f);
|
||||
Contact c;
|
||||
c.a = ia; c.b = ib;
|
||||
c.normal = n;
|
||||
c.penetration = r - dist;
|
||||
c.point = A.position + n * A.half_extents.x;
|
||||
contacts_.push_back(c);
|
||||
}
|
||||
|
||||
void World::SpherePlane(const Body& s, const Body& p, int is, int ip) {
|
||||
float d = glm::dot(p.plane_normal, s.position) - p.plane_offset;
|
||||
float pen = s.half_extents.x - d;
|
||||
if (pen <= 0.0f) return;
|
||||
Contact c;
|
||||
c.a = is; c.b = ip;
|
||||
c.normal = -p.plane_normal; // A (sphere) → B (plane)
|
||||
c.penetration = pen;
|
||||
c.point = s.position - p.plane_normal * s.half_extents.x;
|
||||
contacts_.push_back(c);
|
||||
}
|
||||
|
||||
void World::SphereBox(const Body& s, const Body& box, int is, int ib) {
|
||||
glm::mat3 R = glm::mat3_cast(box.orientation);
|
||||
glm::vec3 rel = glm::transpose(R) * (s.position - box.position);
|
||||
glm::vec3 closest = glm::clamp(rel, -box.half_extents, box.half_extents);
|
||||
glm::vec3 diff = rel - closest;
|
||||
float d2 = glm::dot(diff, diff);
|
||||
float r = s.half_extents.x;
|
||||
if (d2 >= r * r) return;
|
||||
|
||||
glm::vec3 n_local;
|
||||
float dist;
|
||||
if (d2 > 1e-12f) {
|
||||
dist = std::sqrt(d2);
|
||||
n_local = diff / dist;
|
||||
} else {
|
||||
// Sphere center inside box — pick axis of minimum penetration.
|
||||
glm::vec3 pen_axes = box.half_extents - glm::abs(rel);
|
||||
if (pen_axes.x < pen_axes.y && pen_axes.x < pen_axes.z) {
|
||||
n_local = glm::vec3(rel.x < 0 ? -1.0f : 1.0f, 0, 0);
|
||||
dist = -pen_axes.x;
|
||||
} else if (pen_axes.y < pen_axes.z) {
|
||||
n_local = glm::vec3(0, rel.y < 0 ? -1.0f : 1.0f, 0);
|
||||
dist = -pen_axes.y;
|
||||
} else {
|
||||
n_local = glm::vec3(0, 0, rel.z < 0 ? -1.0f : 1.0f);
|
||||
dist = -pen_axes.z;
|
||||
}
|
||||
}
|
||||
|
||||
glm::vec3 n_world = R * n_local; // points from box toward sphere center
|
||||
glm::vec3 contact_world = box.position + R * closest;
|
||||
|
||||
Contact c;
|
||||
// Our convention: normal points from A(sphere) toward B(box)
|
||||
// If is < ib our 'a' is the sphere. But caller may pass s as 'A' regardless
|
||||
// of handle order. We push what DetectCollisions expects using (is, ib).
|
||||
c.a = is;
|
||||
c.b = ib;
|
||||
c.normal = -n_world; // sphere -> box
|
||||
c.penetration = r - dist;
|
||||
c.point = contact_world;
|
||||
contacts_.push_back(c);
|
||||
}
|
||||
|
||||
void World::BoxPlane(const Body& box, const Body& p, int ib, int ip) {
|
||||
glm::mat3 R = glm::mat3_cast(box.orientation);
|
||||
// For each of 8 vertices, test against plane. Push contact per-penetrating.
|
||||
static const glm::vec3 kSigns[8] = {
|
||||
{-1,-1,-1},{ 1,-1,-1},{-1, 1,-1},{ 1, 1,-1},
|
||||
{-1,-1, 1},{ 1,-1, 1},{-1, 1, 1},{ 1, 1, 1}
|
||||
};
|
||||
int added = 0;
|
||||
for (int i = 0; i < 8; ++i) {
|
||||
glm::vec3 lp = box.half_extents * kSigns[i];
|
||||
glm::vec3 wp = box.position + R * lp;
|
||||
float d = glm::dot(p.plane_normal, wp) - p.plane_offset;
|
||||
if (d < 0.0f) {
|
||||
Contact c;
|
||||
c.a = ib; c.b = ip;
|
||||
c.normal = -p.plane_normal; // box -> plane
|
||||
c.penetration = -d;
|
||||
c.point = wp;
|
||||
contacts_.push_back(c);
|
||||
if (++added >= 4) break; // manifold cap
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// --- SAT Box-Box ---------------------------------------------------------
|
||||
namespace {
|
||||
|
||||
struct BoxAxes {
|
||||
glm::vec3 c;
|
||||
glm::vec3 u[3]; // world-space basis columns of R (unit length)
|
||||
glm::vec3 h; // half-extents
|
||||
};
|
||||
|
||||
BoxAxes MakeAxes(const Body& box) {
|
||||
BoxAxes out;
|
||||
out.c = box.position;
|
||||
glm::mat3 R = glm::mat3_cast(box.orientation);
|
||||
out.u[0] = R[0]; out.u[1] = R[1]; out.u[2] = R[2];
|
||||
out.h = box.half_extents;
|
||||
return out;
|
||||
}
|
||||
|
||||
float ProjectOBB(const BoxAxes& a, const glm::vec3& axis) {
|
||||
return a.h.x * std::abs(glm::dot(a.u[0], axis))
|
||||
+ a.h.y * std::abs(glm::dot(a.u[1], axis))
|
||||
+ a.h.z * std::abs(glm::dot(a.u[2], axis));
|
||||
}
|
||||
|
||||
// Clip polygon by half-space n·x <= d (returns clipped vertices).
|
||||
std::vector<glm::vec3> ClipPoly(const std::vector<glm::vec3>& in,
|
||||
const glm::vec3& n, float d) {
|
||||
std::vector<glm::vec3> out;
|
||||
out.reserve(in.size() + 1);
|
||||
if (in.empty()) return out;
|
||||
for (size_t i = 0; i < in.size(); ++i) {
|
||||
const glm::vec3& cur = in[i];
|
||||
const glm::vec3& prev = in[(i + in.size() - 1) % in.size()];
|
||||
float dc = glm::dot(n, cur) - d;
|
||||
float dp = glm::dot(n, prev) - d;
|
||||
bool cur_in = dc <= 0.0f;
|
||||
bool prev_in = dp <= 0.0f;
|
||||
if (prev_in ^ cur_in) {
|
||||
float t = dp / (dp - dc);
|
||||
out.push_back(prev + (cur - prev) * t);
|
||||
}
|
||||
if (cur_in) out.push_back(cur);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
void World::BoxBox(const Body& A, const Body& B, int ia, int ib) {
|
||||
BoxAxes a = MakeAxes(A);
|
||||
BoxAxes b = MakeAxes(B);
|
||||
|
||||
glm::vec3 t = b.c - a.c;
|
||||
|
||||
// Build matrix of dot products between A and B axes.
|
||||
float Rm[3][3], AbsR[3][3];
|
||||
const float kEps = 1e-6f;
|
||||
for (int i = 0; i < 3; ++i)
|
||||
for (int j = 0; j < 3; ++j) {
|
||||
Rm[i][j] = glm::dot(a.u[i], b.u[j]);
|
||||
AbsR[i][j] = std::abs(Rm[i][j]) + kEps;
|
||||
}
|
||||
|
||||
float t_a[3] = {
|
||||
glm::dot(t, a.u[0]), glm::dot(t, a.u[1]), glm::dot(t, a.u[2])
|
||||
};
|
||||
|
||||
float best_overlap = std::numeric_limits<float>::max();
|
||||
int best_axis_type = -1; // 0=A face, 1=B face, 2=edge cross
|
||||
int best_axis_index = 0; // face index, or i*3+j for edge
|
||||
float best_sign = 1.0f; // axis direction sign toward B
|
||||
glm::vec3 best_axis(0.0f);
|
||||
|
||||
auto TestAxis = [&](const glm::vec3& L, float ra, float rb, float center_dist,
|
||||
int type, int index) {
|
||||
float len = glm::length(L);
|
||||
if (len < 1e-8f) return true; // parallel edges; skip
|
||||
float overlap = (ra + rb) - std::abs(center_dist);
|
||||
if (overlap < 0.0f) return false;
|
||||
// Normalize overlap per-axis so face axes compete fairly with edge axes.
|
||||
float o_norm = overlap / len;
|
||||
if (o_norm < best_overlap) {
|
||||
best_overlap = o_norm;
|
||||
best_axis_type = type;
|
||||
best_axis_index = index;
|
||||
best_axis = L / len;
|
||||
best_sign = (center_dist < 0) ? -1.0f : 1.0f;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
// A's face axes
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
float ra = a.h[i];
|
||||
float rb = b.h.x * AbsR[i][0] + b.h.y * AbsR[i][1] + b.h.z * AbsR[i][2];
|
||||
if (!TestAxis(a.u[i], ra, rb, t_a[i], 0, i)) return;
|
||||
}
|
||||
// B's face axes
|
||||
for (int j = 0; j < 3; ++j) {
|
||||
float ra = a.h.x * AbsR[0][j] + a.h.y * AbsR[1][j] + a.h.z * AbsR[2][j];
|
||||
float rb = b.h[j];
|
||||
float dist = glm::dot(t, b.u[j]);
|
||||
if (!TestAxis(b.u[j], ra, rb, dist, 1, j)) return;
|
||||
}
|
||||
// 9 edge-edge axes
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
for (int j = 0; j < 3; ++j) {
|
||||
glm::vec3 L = glm::cross(a.u[i], b.u[j]);
|
||||
int i1 = (i + 1) % 3, i2 = (i + 2) % 3;
|
||||
int j1 = (j + 1) % 3, j2 = (j + 2) % 3;
|
||||
float ra = a.h[i1] * AbsR[i2][j] + a.h[i2] * AbsR[i1][j];
|
||||
float rb = b.h[j1] * AbsR[i][j2] + b.h[j2] * AbsR[i][j1];
|
||||
float dist = t_a[i2] * Rm[i1][j] - t_a[i1] * Rm[i2][j];
|
||||
if (!TestAxis(L, ra, rb, dist, 2, i * 3 + j)) return;
|
||||
}
|
||||
}
|
||||
|
||||
if (best_axis_type < 0) return;
|
||||
|
||||
// Ensure normal points from A to B.
|
||||
glm::vec3 n = best_axis * best_sign;
|
||||
if (glm::dot(n, t) < 0.0f) n = -n;
|
||||
|
||||
// Face-face manifold via Sutherland–Hodgman clipping.
|
||||
if (best_axis_type == 0 || best_axis_type == 1) {
|
||||
const BoxAxes& ref = (best_axis_type == 0) ? a : b;
|
||||
const BoxAxes& inc = (best_axis_type == 0) ? b : a;
|
||||
glm::vec3 refN = (best_axis_type == 0) ? n : -n; // points outward from ref
|
||||
|
||||
// Reference face: the one whose outward normal = refN (one of ±ref.u[k])
|
||||
int ref_k = 0;
|
||||
float best_dot = -std::numeric_limits<float>::max();
|
||||
float ref_sign = 1.0f;
|
||||
for (int k = 0; k < 3; ++k) {
|
||||
float d0 = glm::dot(ref.u[k], refN);
|
||||
if (std::abs(d0) > best_dot) {
|
||||
best_dot = std::abs(d0);
|
||||
ref_k = k;
|
||||
ref_sign = (d0 >= 0) ? 1.0f : -1.0f;
|
||||
}
|
||||
}
|
||||
glm::vec3 refAxis = ref.u[ref_k] * ref_sign;
|
||||
glm::vec3 refCenter = ref.c + refAxis * ref.h[ref_k];
|
||||
|
||||
// Incident face: pick incident box face whose normal is most opposite refAxis.
|
||||
int inc_k = 0;
|
||||
float min_dot = std::numeric_limits<float>::max();
|
||||
float inc_sign = 1.0f;
|
||||
for (int k = 0; k < 3; ++k) {
|
||||
float d0 = glm::dot(inc.u[k], refAxis);
|
||||
if (d0 < min_dot) {
|
||||
min_dot = d0;
|
||||
inc_k = k; inc_sign = 1.0f;
|
||||
}
|
||||
if (-d0 < min_dot) {
|
||||
min_dot = -d0;
|
||||
inc_k = k; inc_sign = -1.0f;
|
||||
}
|
||||
}
|
||||
|
||||
// Build the incident face as 4 world-space vertices.
|
||||
int u = (inc_k + 1) % 3;
|
||||
int v = (inc_k + 2) % 3;
|
||||
glm::vec3 inc_center = inc.c + inc.u[inc_k] * (inc.h[inc_k] * inc_sign);
|
||||
glm::vec3 inc_u = inc.u[u] * inc.h[u];
|
||||
glm::vec3 inc_v = inc.u[v] * inc.h[v];
|
||||
std::vector<glm::vec3> poly = {
|
||||
inc_center - inc_u - inc_v,
|
||||
inc_center + inc_u - inc_v,
|
||||
inc_center + inc_u + inc_v,
|
||||
inc_center - inc_u + inc_v
|
||||
};
|
||||
|
||||
// Clip against the 4 side planes of the reference face.
|
||||
int ru = (ref_k + 1) % 3;
|
||||
int rv = (ref_k + 2) % 3;
|
||||
glm::vec3 side_axes[4] = { ref.u[ru], -ref.u[ru], ref.u[rv], -ref.u[rv] };
|
||||
float side_d[4] = {
|
||||
glm::dot(ref.u[ru], refCenter) + ref.h[ru],
|
||||
-glm::dot(ref.u[ru], refCenter) + ref.h[ru],
|
||||
glm::dot(ref.u[rv], refCenter) + ref.h[rv],
|
||||
-glm::dot(ref.u[rv], refCenter) + ref.h[rv]
|
||||
};
|
||||
for (int s = 0; s < 4; ++s)
|
||||
poly = ClipPoly(poly, side_axes[s], side_d[s]);
|
||||
|
||||
// Emit penetrating points (those behind the reference face plane).
|
||||
int emitted = 0;
|
||||
for (const auto& p : poly) {
|
||||
float d = glm::dot(refAxis, p - refCenter);
|
||||
if (d > 0.0f) continue;
|
||||
Contact c;
|
||||
c.a = ia; c.b = ib;
|
||||
c.normal = n;
|
||||
c.penetration = -d;
|
||||
c.point = p;
|
||||
contacts_.push_back(c);
|
||||
if (++emitted >= 4) break;
|
||||
}
|
||||
if (emitted == 0) {
|
||||
// Fallback: single-point contact at deepest witness along n.
|
||||
glm::vec3 pA = BoxSupport(A, n);
|
||||
glm::vec3 pB = BoxSupport(B, -n);
|
||||
Contact c;
|
||||
c.a = ia; c.b = ib;
|
||||
c.normal = n;
|
||||
c.penetration = best_overlap;
|
||||
c.point = 0.5f * (pA + pB);
|
||||
contacts_.push_back(c);
|
||||
}
|
||||
} else {
|
||||
// Edge-edge — approximate with midpoint of nearest-point pair.
|
||||
glm::vec3 pA = BoxSupport(A, n);
|
||||
glm::vec3 pB = BoxSupport(B, -n);
|
||||
Contact c;
|
||||
c.a = ia; c.b = ib;
|
||||
c.normal = n;
|
||||
c.penetration = best_overlap;
|
||||
c.point = 0.5f * (pA + pB);
|
||||
contacts_.push_back(c);
|
||||
}
|
||||
}
|
||||
|
||||
// --- Solver --------------------------------------------------------------
|
||||
|
||||
void World::PrepareSolver(float dt) {
|
||||
for (auto& b : bodies_) if (b.alive) RecomputeInvInertiaWorld(b);
|
||||
|
||||
const float kMatchR2 = 0.04f * 0.04f; // 4cm point-match radius
|
||||
|
||||
for (auto& c : contacts_) {
|
||||
Body& A = bodies_[c.a];
|
||||
Body& B = bodies_[c.b];
|
||||
c.rA = c.point - A.position;
|
||||
c.rB = c.point - B.position;
|
||||
ComputeBasis(c.normal, c.tangent1, c.tangent2);
|
||||
|
||||
auto EffMass = [&](const glm::vec3& axis) {
|
||||
glm::vec3 rA_x_n = glm::cross(c.rA, axis);
|
||||
glm::vec3 rB_x_n = glm::cross(c.rB, axis);
|
||||
float m = A.inv_mass + B.inv_mass
|
||||
+ glm::dot(rA_x_n, A.inv_inertia_world * rA_x_n)
|
||||
+ glm::dot(rB_x_n, B.inv_inertia_world * rB_x_n);
|
||||
return m > 0.0f ? 1.0f / m : 0.0f;
|
||||
};
|
||||
|
||||
c.normal_mass = EffMass(c.normal);
|
||||
c.tangent_mass1 = EffMass(c.tangent1);
|
||||
c.tangent_mass2 = EffMass(c.tangent2);
|
||||
|
||||
// Baumgarte positional bias.
|
||||
float pen = std::max(0.0f, c.penetration - kPenetrationSlop);
|
||||
c.bias = -(kBaumgarte / dt) * pen;
|
||||
|
||||
// Restitution bias: closing velocity × restitution, only if significant.
|
||||
glm::vec3 rv = VelAtPoint(B, c.rB) - VelAtPoint(A, c.rA);
|
||||
float rv_n = glm::dot(rv, c.normal);
|
||||
float e = std::min(A.restitution, B.restitution);
|
||||
if (rv_n < -1.0f) c.bias += e * rv_n;
|
||||
|
||||
// Warm-start: find a prior contact on the same pair at a nearby point.
|
||||
c.normal_impulse = 0.0f;
|
||||
c.tangent_impulse1 = 0.0f;
|
||||
c.tangent_impulse2 = 0.0f;
|
||||
for (const auto& pc : prev_contacts_) {
|
||||
if (pc.a != c.a || pc.b != c.b) continue;
|
||||
glm::vec3 d = pc.point - c.point;
|
||||
if (glm::dot(d, d) < kMatchR2) {
|
||||
c.normal_impulse = pc.normal_impulse;
|
||||
c.tangent_impulse1 = pc.tangent_impulse1;
|
||||
c.tangent_impulse2 = pc.tangent_impulse2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void World::WarmStart() {
|
||||
for (auto& c : contacts_) {
|
||||
Body& A = bodies_[c.a];
|
||||
Body& B = bodies_[c.b];
|
||||
glm::vec3 P = c.normal * c.normal_impulse
|
||||
+ c.tangent1 * c.tangent_impulse1
|
||||
+ c.tangent2 * c.tangent_impulse2;
|
||||
A.linear_velocity -= P * A.inv_mass;
|
||||
A.angular_velocity -= A.inv_inertia_world * glm::cross(c.rA, P);
|
||||
B.linear_velocity += P * B.inv_mass;
|
||||
B.angular_velocity += B.inv_inertia_world * glm::cross(c.rB, P);
|
||||
}
|
||||
}
|
||||
|
||||
void World::SolveVelocities() {
|
||||
for (auto& c : contacts_) {
|
||||
Body& A = bodies_[c.a];
|
||||
Body& B = bodies_[c.b];
|
||||
|
||||
auto ApplyImpulse = [&](const glm::vec3& axis, float lambda) {
|
||||
glm::vec3 P = axis * lambda;
|
||||
A.linear_velocity -= P * A.inv_mass;
|
||||
A.angular_velocity -= A.inv_inertia_world * glm::cross(c.rA, P);
|
||||
B.linear_velocity += P * B.inv_mass;
|
||||
B.angular_velocity += B.inv_inertia_world * glm::cross(c.rB, P);
|
||||
};
|
||||
|
||||
// Tangents first so friction is proportional to final normal impulse.
|
||||
{
|
||||
glm::vec3 rv = VelAtPoint(B, c.rB) - VelAtPoint(A, c.rA);
|
||||
float mu = std::sqrt(A.friction * B.friction);
|
||||
float max_fric = mu * c.normal_impulse;
|
||||
|
||||
float rv_t1 = glm::dot(rv, c.tangent1);
|
||||
float lambda1 = -rv_t1 * c.tangent_mass1;
|
||||
float new_imp1 = std::clamp(c.tangent_impulse1 + lambda1, -max_fric, max_fric);
|
||||
lambda1 = new_imp1 - c.tangent_impulse1;
|
||||
c.tangent_impulse1 = new_imp1;
|
||||
ApplyImpulse(c.tangent1, lambda1);
|
||||
|
||||
rv = VelAtPoint(B, c.rB) - VelAtPoint(A, c.rA);
|
||||
float rv_t2 = glm::dot(rv, c.tangent2);
|
||||
float lambda2 = -rv_t2 * c.tangent_mass2;
|
||||
float new_imp2 = std::clamp(c.tangent_impulse2 + lambda2, -max_fric, max_fric);
|
||||
lambda2 = new_imp2 - c.tangent_impulse2;
|
||||
c.tangent_impulse2 = new_imp2;
|
||||
ApplyImpulse(c.tangent2, lambda2);
|
||||
}
|
||||
|
||||
// Normal impulse
|
||||
glm::vec3 rv = VelAtPoint(B, c.rB) - VelAtPoint(A, c.rA);
|
||||
float rv_n = glm::dot(rv, c.normal);
|
||||
float lambda = -(rv_n + c.bias) * c.normal_mass;
|
||||
float new_imp = std::max(0.0f, c.normal_impulse + lambda);
|
||||
lambda = new_imp - c.normal_impulse;
|
||||
c.normal_impulse = new_imp;
|
||||
ApplyImpulse(c.normal, lambda);
|
||||
}
|
||||
}
|
||||
|
||||
void World::IntegrateVelocities(float dt) {
|
||||
for (auto& b : bodies_) {
|
||||
if (!b.alive || b.is_static || b.inv_mass == 0.0f) continue;
|
||||
if (b.sleeping) continue;
|
||||
b.position += b.linear_velocity * dt;
|
||||
glm::quat w(0.0f, b.angular_velocity.x, b.angular_velocity.y, b.angular_velocity.z);
|
||||
glm::quat dq = 0.5f * w * b.orientation;
|
||||
b.orientation = glm::normalize(b.orientation + dq * dt);
|
||||
}
|
||||
}
|
||||
|
||||
void World::UpdateSleep(float dt) {
|
||||
for (auto& b : bodies_) {
|
||||
if (!b.alive || b.is_static || b.inv_mass == 0.0f) continue;
|
||||
float lin2 = glm::dot(b.linear_velocity, b.linear_velocity);
|
||||
float ang2 = glm::dot(b.angular_velocity, b.angular_velocity);
|
||||
if (lin2 < kSleepLinearSq && ang2 < kSleepAngularSq) {
|
||||
b.sleep_timer += dt;
|
||||
if (b.sleep_timer >= kSleepTime) {
|
||||
b.sleeping = true;
|
||||
b.linear_velocity = glm::vec3(0.0f);
|
||||
b.angular_velocity = glm::vec3(0.0f);
|
||||
}
|
||||
} else {
|
||||
b.sleep_timer = 0.0f;
|
||||
b.sleeping = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace phys
|
||||
136
src/Physics.h
Normal file
136
src/Physics.h
Normal file
@@ -0,0 +1,136 @@
|
||||
#pragma once
|
||||
#include <glm/glm.hpp>
|
||||
#include <glm/gtc/quaternion.hpp>
|
||||
#include <glm/gtc/matrix_transform.hpp>
|
||||
#include <vector>
|
||||
#include <cstdint>
|
||||
|
||||
// Hand-rolled rigid-body physics — sequential-impulse solver, SAT boxes.
|
||||
// V1 shapes: Sphere, Box (OBB), Plane (infinite, static-only).
|
||||
|
||||
namespace phys {
|
||||
|
||||
enum class Shape : uint8_t { Sphere, Box, Plane };
|
||||
|
||||
struct Body {
|
||||
Shape shape = Shape::Sphere;
|
||||
|
||||
// Sphere: half_extents.x = radius (y, z unused).
|
||||
// Box: half_extents = half-widths along local X/Y/Z.
|
||||
// Plane: plane_normal + plane_offset define n·x = offset.
|
||||
glm::vec3 half_extents{0.5f};
|
||||
glm::vec3 plane_normal{0.0f, 1.0f, 0.0f};
|
||||
float plane_offset = 0.0f;
|
||||
|
||||
glm::vec3 position{0.0f};
|
||||
glm::quat orientation{1.0f, 0.0f, 0.0f, 0.0f};
|
||||
glm::vec3 linear_velocity{0.0f};
|
||||
glm::vec3 angular_velocity{0.0f};
|
||||
glm::vec3 force_accum{0.0f};
|
||||
glm::vec3 torque_accum{0.0f};
|
||||
|
||||
float inv_mass = 1.0f; // 0 => static or kinematic
|
||||
glm::mat3 inv_inertia_local{0.0f}; // diag in local space
|
||||
glm::mat3 inv_inertia_world{0.0f}; // cached each step
|
||||
|
||||
float restitution = 0.2f;
|
||||
float friction = 0.5f;
|
||||
float linear_damping = 0.02f;
|
||||
float angular_damping = 0.05f;
|
||||
|
||||
bool is_static = false;
|
||||
bool sleeping = false;
|
||||
float sleep_timer = 0.0f;
|
||||
|
||||
bool alive = true;
|
||||
int handle = -1; // stable handle = index into world.bodies_
|
||||
};
|
||||
|
||||
struct Contact {
|
||||
int a = -1;
|
||||
int b = -1;
|
||||
glm::vec3 point{0.0f}; // world-space contact point
|
||||
glm::vec3 normal{0.0f, 1.0f, 0.0f}; // from A toward B
|
||||
float penetration = 0.0f;
|
||||
|
||||
// Solver scratch (recomputed each step)
|
||||
glm::vec3 rA{0.0f}, rB{0.0f}; // offsets from COM to point
|
||||
glm::vec3 tangent1{0.0f}, tangent2{0.0f};
|
||||
float normal_mass = 0.0f;
|
||||
float tangent_mass1 = 0.0f;
|
||||
float tangent_mass2 = 0.0f;
|
||||
float bias = 0.0f;
|
||||
float normal_impulse = 0.0f;
|
||||
float tangent_impulse1 = 0.0f;
|
||||
float tangent_impulse2 = 0.0f;
|
||||
};
|
||||
|
||||
class World {
|
||||
public:
|
||||
glm::vec3 gravity{0.0f, -9.81f, 0.0f};
|
||||
float fixed_dt = 1.0f / 60.0f;
|
||||
int solver_iterations = 8;
|
||||
bool enabled = false;
|
||||
|
||||
// Water: buoyancy samples the actual Gerstner wave surface each step.
|
||||
bool water_enabled = false;
|
||||
float water_level = 0.0f;
|
||||
float water_amplitude = 0.3f;
|
||||
float water_wavelength = 8.0f;
|
||||
float water_speed = 1.0f;
|
||||
float water_time = 0.0f; // pushed from Engine each frame
|
||||
float water_amp_scale = 1.0f; // storminess multiplier
|
||||
float water_density = 1.0f;
|
||||
float water_drag_linear = 1.5f;
|
||||
float water_drag_angular = 0.8f;
|
||||
|
||||
// Wind-driven surface current (applied to submerged bodies).
|
||||
glm::vec2 wind_dir_xz = glm::vec2(1.0f, 0.0f);
|
||||
float wind_speed = 0.0f;
|
||||
float current_coef = 0.6f;
|
||||
|
||||
// Directional water flow (independent of wind — rivers, waterfalls).
|
||||
glm::vec2 water_flow_dir = glm::vec2(0.0f, 0.0f);
|
||||
float water_flow_speed = 0.0f;
|
||||
|
||||
// Gerstner sampler — mirrors the water shader exactly.
|
||||
float SampleWaterY(float x, float z) const;
|
||||
|
||||
int AddBody(const Body& b);
|
||||
void RemoveBody(int handle);
|
||||
Body* Get(int handle);
|
||||
const Body* Get(int handle) const;
|
||||
|
||||
// Drives the fixed-timestep loop. Call each frame with real delta.
|
||||
void Step(float real_dt);
|
||||
|
||||
// Iterate live bodies; callback receives handle and body ref.
|
||||
template <typename F>
|
||||
void ForEach(F&& fn) {
|
||||
for (auto& b : bodies_) if (b.alive) fn(b.handle, b);
|
||||
}
|
||||
|
||||
private:
|
||||
std::vector<Body> bodies_;
|
||||
std::vector<Contact> contacts_;
|
||||
std::vector<Contact> prev_contacts_; // for warm-starting across frames
|
||||
float accumulator_ = 0.0f;
|
||||
|
||||
void IntegrateForces(float dt);
|
||||
void DetectCollisions();
|
||||
void WarmStart();
|
||||
void PrepareSolver(float dt);
|
||||
void SolveVelocities();
|
||||
void IntegrateVelocities(float dt);
|
||||
void UpdateSleep(float dt);
|
||||
|
||||
// Pairwise tests that push contacts into contacts_.
|
||||
void TestPair(int ia, int ib);
|
||||
void SpherePlane(const Body& s, const Body& p, int is, int ip);
|
||||
void SphereSphere(const Body& a, const Body& b, int ia, int ib);
|
||||
void SphereBox(const Body& s, const Body& box, int is, int ib);
|
||||
void BoxPlane(const Body& box, const Body& p, int ib, int ip);
|
||||
void BoxBox(const Body& a, const Body& b, int ia, int ib);
|
||||
};
|
||||
|
||||
} // namespace phys
|
||||
261
src/TextureCache.cpp
Normal file
261
src/TextureCache.cpp
Normal file
@@ -0,0 +1,261 @@
|
||||
#include "TextureCache.h"
|
||||
#include "SimpleTextureLoader.h"
|
||||
#include <cmath>
|
||||
#include <cstdint>
|
||||
#include <filesystem>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
|
||||
std::unordered_map<std::string, GLuint> TextureCache::cache_;
|
||||
|
||||
namespace {
|
||||
|
||||
// Deterministic value noise ----------------------------------------------
|
||||
uint32_t hash32(uint32_t x) {
|
||||
x ^= x >> 16; x *= 0x7feb352du;
|
||||
x ^= x >> 15; x *= 0x846ca68bu;
|
||||
x ^= x >> 16;
|
||||
return x;
|
||||
}
|
||||
float hashf(int x, int y, uint32_t seed = 0) {
|
||||
uint32_t h = hash32((uint32_t)x * 374761393u + (uint32_t)y * 668265263u + seed);
|
||||
return (h & 0xffffff) / float(0xffffff);
|
||||
}
|
||||
float smooth(float t) { return t * t * (3.0f - 2.0f * t); }
|
||||
float noise2D(float x, float y, uint32_t seed = 0) {
|
||||
int xi = (int)std::floor(x), yi = (int)std::floor(y);
|
||||
float xf = x - xi, yf = y - yi;
|
||||
float a = hashf(xi, yi, seed);
|
||||
float b = hashf(xi + 1, yi, seed);
|
||||
float c = hashf(xi, yi + 1, seed);
|
||||
float d = hashf(xi + 1, yi + 1, seed);
|
||||
float u = smooth(xf), v = smooth(yf);
|
||||
return (1 - u) * (1 - v) * a + u * (1 - v) * b
|
||||
+ (1 - u) * v * c + u * v * d;
|
||||
}
|
||||
float fbm(float x, float y, int octaves, uint32_t seed = 0) {
|
||||
float total = 0, amp = 1, sum = 0;
|
||||
for (int i = 0; i < octaves; ++i) {
|
||||
total += noise2D(x, y, seed + i * 7919u) * amp;
|
||||
sum += amp; amp *= 0.5f; x *= 2; y *= 2;
|
||||
}
|
||||
return total / sum;
|
||||
}
|
||||
|
||||
void setPixel(std::vector<unsigned char>& buf, int w, int x, int y,
|
||||
unsigned char r, unsigned char g, unsigned char b, unsigned char a = 255) {
|
||||
int i = (y * w + x) * 4;
|
||||
buf[i + 0] = r; buf[i + 1] = g; buf[i + 2] = b; buf[i + 3] = a;
|
||||
}
|
||||
|
||||
// Linear interpolate between 2 RGB colors (0-255)
|
||||
void lerpColor(float t, const float a[3], const float b[3], unsigned char out[3]) {
|
||||
t = std::clamp(t, 0.0f, 1.0f);
|
||||
out[0] = (unsigned char)std::clamp(a[0] + (b[0] - a[0]) * t, 0.0f, 255.0f);
|
||||
out[1] = (unsigned char)std::clamp(a[1] + (b[1] - a[1]) * t, 0.0f, 255.0f);
|
||||
out[2] = (unsigned char)std::clamp(a[2] + (b[2] - a[2]) * t, 0.0f, 255.0f);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
GLuint TextureCache::UploadRGBA(const unsigned char* data, int w, int h, bool srgb) {
|
||||
GLuint id;
|
||||
glGenTextures(1, &id);
|
||||
glBindTexture(GL_TEXTURE_2D, id);
|
||||
GLint internalFmt = srgb ? GL_SRGB8_ALPHA8 : GL_RGBA8;
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, internalFmt, w, h, 0,
|
||||
GL_RGBA, GL_UNSIGNED_BYTE, data);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
return id;
|
||||
}
|
||||
|
||||
GLuint TextureCache::Procedural(const std::string& name) {
|
||||
const int W = 512, H = 512;
|
||||
std::vector<unsigned char> buf(W * H * 4, 255);
|
||||
|
||||
if (name == "white") {
|
||||
std::fill(buf.begin(), buf.end(), 255);
|
||||
} else if (name == "black") {
|
||||
for (int i = 0; i < W * H; ++i) {
|
||||
buf[i * 4 + 0] = 0; buf[i * 4 + 1] = 0; buf[i * 4 + 2] = 0;
|
||||
buf[i * 4 + 3] = 255;
|
||||
}
|
||||
} else if (name == "checker") {
|
||||
int cell = 32;
|
||||
for (int y = 0; y < H; ++y) for (int x = 0; x < W; ++x) {
|
||||
bool k = ((x / cell) + (y / cell)) & 1;
|
||||
unsigned char v = k ? 230 : 50;
|
||||
setPixel(buf, W, x, y, v, v, v);
|
||||
}
|
||||
} else if (name == "grid") {
|
||||
int cell = 64;
|
||||
for (int y = 0; y < H; ++y) for (int x = 0; x < W; ++x) {
|
||||
bool line = (x % cell == 0) || (y % cell == 0)
|
||||
|| (x % cell == cell - 1) || (y % cell == cell - 1);
|
||||
unsigned char v = line ? 30 : 220;
|
||||
setPixel(buf, W, x, y, v, v, v);
|
||||
}
|
||||
} else if (name == "stripes") {
|
||||
for (int y = 0; y < H; ++y) for (int x = 0; x < W; ++x) {
|
||||
bool k = ((x / 32) & 1);
|
||||
if (k) setPixel(buf, W, x, y, 220, 220, 210);
|
||||
else setPixel(buf, W, x, y, 80, 50, 40);
|
||||
}
|
||||
} else if (name == "brick") {
|
||||
int bw = 128, bh = 48, mortar = 3;
|
||||
for (int y = 0; y < H; ++y) for (int x = 0; x < W; ++x) {
|
||||
int row = y / bh;
|
||||
int offset = (row & 1) ? bw / 2 : 0;
|
||||
int mx = (x + offset) % bw;
|
||||
int my = y % bh;
|
||||
bool is_mortar = (mx < mortar) || (my < mortar);
|
||||
if (is_mortar) setPixel(buf, W, x, y, 180, 180, 170);
|
||||
else {
|
||||
float n = fbm(x * 0.05f, y * 0.05f, 4, 11) * 0.3f + 0.7f;
|
||||
unsigned char r = (unsigned char)(150 * n);
|
||||
unsigned char g = (unsigned char)(60 * n);
|
||||
unsigned char b = (unsigned char)(40 * n);
|
||||
setPixel(buf, W, x, y, r, g, b);
|
||||
}
|
||||
}
|
||||
} else if (name == "wood") {
|
||||
for (int y = 0; y < H; ++y) for (int x = 0; x < W; ++x) {
|
||||
// Rings + grain
|
||||
float r = std::sqrt((x - W * 0.5f) * (x - W * 0.5f)
|
||||
+ (y - H * 0.5f) * (y - H * 0.5f)) * 0.04f;
|
||||
float rings = std::sin(r + fbm(x * 0.01f, y * 0.01f, 4, 7) * 2.0f);
|
||||
float grain = fbm(x * 0.08f, y * 0.008f, 4, 13);
|
||||
float t = std::clamp(0.5f + 0.3f * rings + 0.3f * grain, 0.0f, 1.0f);
|
||||
const float dark[3] = { 85, 48, 22};
|
||||
const float light[3]= {175, 120, 70};
|
||||
unsigned char c[3];
|
||||
lerpColor(t, dark, light, c);
|
||||
setPixel(buf, W, x, y, c[0], c[1], c[2]);
|
||||
}
|
||||
} else if (name == "marble") {
|
||||
for (int y = 0; y < H; ++y) for (int x = 0; x < W; ++x) {
|
||||
float f = fbm(x * 0.012f, y * 0.012f, 5, 3);
|
||||
float v = std::sin(x * 0.02f + f * 5.0f);
|
||||
float t = std::clamp(0.7f + v * 0.25f, 0.0f, 1.0f);
|
||||
const float dark[3] = {190, 195, 200};
|
||||
const float light[3]= {245, 245, 250};
|
||||
unsigned char c[3];
|
||||
lerpColor(t, dark, light, c);
|
||||
setPixel(buf, W, x, y, c[0], c[1], c[2]);
|
||||
}
|
||||
} else if (name == "concrete") {
|
||||
for (int y = 0; y < H; ++y) for (int x = 0; x < W; ++x) {
|
||||
float n = fbm(x * 0.05f, y * 0.05f, 5, 17);
|
||||
float speck = hashf(x, y, 42);
|
||||
unsigned char v = (unsigned char)(160 + n * 60 - speck * 20);
|
||||
v = std::clamp<int>(v, 90, 230);
|
||||
setPixel(buf, W, x, y, v, v, v + 4);
|
||||
}
|
||||
} else if (name == "dirt") {
|
||||
for (int y = 0; y < H; ++y) for (int x = 0; x < W; ++x) {
|
||||
float f = fbm(x * 0.04f, y * 0.04f, 5, 23);
|
||||
const float low[3] = { 55, 35, 20};
|
||||
const float high[3] = {130, 90, 55};
|
||||
unsigned char c[3];
|
||||
lerpColor(f, low, high, c);
|
||||
setPixel(buf, W, x, y, c[0], c[1], c[2]);
|
||||
}
|
||||
} else if (name == "rock") {
|
||||
for (int y = 0; y < H; ++y) for (int x = 0; x < W; ++x) {
|
||||
float f = fbm(x * 0.02f, y * 0.02f, 6, 31);
|
||||
float cracks = std::pow(std::abs(std::sin(x * 0.01f + f * 8.0f)), 40.0f);
|
||||
float v = 100 + f * 100 - cracks * 40;
|
||||
unsigned char c = (unsigned char)std::clamp(v, 40.0f, 230.0f);
|
||||
setPixel(buf, W, x, y, c, c - 4, c - 8);
|
||||
}
|
||||
} else if (name == "grass") {
|
||||
for (int y = 0; y < H; ++y) for (int x = 0; x < W; ++x) {
|
||||
float f = fbm(x * 0.08f, y * 0.08f, 4, 53);
|
||||
const float low[3] = { 40, 80, 25};
|
||||
const float high[3] = {105, 160, 55};
|
||||
unsigned char c[3];
|
||||
lerpColor(f, low, high, c);
|
||||
// Thin darker blades
|
||||
float blade = std::pow(std::abs(std::sin(x * 0.2f + f * 3.0f)), 12.0f);
|
||||
c[0] = (unsigned char)std::clamp<int>(c[0] - (int)(blade * 35), 0, 255);
|
||||
c[1] = (unsigned char)std::clamp<int>(c[1] - (int)(blade * 35), 0, 255);
|
||||
c[2] = (unsigned char)std::clamp<int>(c[2] - (int)(blade * 15), 0, 255);
|
||||
setPixel(buf, W, x, y, c[0], c[1], c[2]);
|
||||
}
|
||||
} else if (name == "noise") {
|
||||
for (int y = 0; y < H; ++y) for (int x = 0; x < W; ++x) {
|
||||
float f = fbm(x * 0.03f, y * 0.03f, 5, 1);
|
||||
unsigned char v = (unsigned char)(f * 255);
|
||||
setPixel(buf, W, x, y, v, v, v);
|
||||
}
|
||||
} else {
|
||||
return 0; // unknown
|
||||
}
|
||||
|
||||
return UploadRGBA(buf.data(), W, H, /*srgb=*/true);
|
||||
}
|
||||
|
||||
GLuint TextureCache::LoadFromFile(const std::string& path) {
|
||||
namespace fs = std::filesystem;
|
||||
if (!fs::exists(path)) return 0;
|
||||
std::string ext = fs::path(path).extension().string();
|
||||
for (auto& c : ext) c = (char)std::tolower((unsigned char)c);
|
||||
if (ext == ".bmp") return SimpleTextureLoader::LoadBMP(path);
|
||||
if (ext == ".tga") return SimpleTextureLoader::LoadTGA(path);
|
||||
return 0;
|
||||
}
|
||||
|
||||
GLuint TextureCache::Get(const std::string& name) {
|
||||
if (name.empty()) return DefaultWhite();
|
||||
auto it = cache_.find(name);
|
||||
if (it != cache_.end()) return it->second;
|
||||
|
||||
GLuint id = Procedural(name);
|
||||
if (id == 0) id = LoadFromFile(name);
|
||||
if (id == 0) {
|
||||
// Fallback to white rather than 0 so shader path stays valid.
|
||||
id = DefaultWhite();
|
||||
}
|
||||
cache_[name] = id;
|
||||
return id;
|
||||
}
|
||||
|
||||
GLuint TextureCache::DefaultWhite() {
|
||||
static GLuint white = 0;
|
||||
if (white != 0) return white;
|
||||
unsigned char px[4] = {255, 255, 255, 255};
|
||||
glGenTextures(1, &white);
|
||||
glBindTexture(GL_TEXTURE_2D, white);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 1, 1, 0,
|
||||
GL_RGBA, GL_UNSIGNED_BYTE, px);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
return white;
|
||||
}
|
||||
|
||||
GLuint TextureCache::DefaultNormal() {
|
||||
static GLuint n = 0;
|
||||
if (n != 0) return n;
|
||||
// Tangent-space (0,0,1) encodes as (0.5, 0.5, 1.0).
|
||||
unsigned char px[4] = {128, 128, 255, 255};
|
||||
glGenTextures(1, &n);
|
||||
glBindTexture(GL_TEXTURE_2D, n);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 1, 1, 0,
|
||||
GL_RGBA, GL_UNSIGNED_BYTE, px);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
return n;
|
||||
}
|
||||
|
||||
void TextureCache::Clear() {
|
||||
for (auto& [k, v] : cache_) glDeleteTextures(1, &v);
|
||||
cache_.clear();
|
||||
}
|
||||
25
src/TextureCache.h
Normal file
25
src/TextureCache.h
Normal file
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
#include <glad.h>
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
|
||||
// Single cache for diffuse textures. Resolves names as either:
|
||||
// - builtin: "white", "black", "checker", "grid", "noise", "wood",
|
||||
// "brick", "stripes", "marble", "concrete", "dirt",
|
||||
// "rock", "grass"
|
||||
// - file path ending .bmp or .tga (uses SimpleTextureLoader)
|
||||
//
|
||||
// Builtins are generated procedurally in-memory at first request and cached.
|
||||
class TextureCache {
|
||||
public:
|
||||
static GLuint Get(const std::string& name);
|
||||
static GLuint DefaultWhite();
|
||||
static GLuint DefaultNormal(); // flat (0,0,1) encoded as (0.5,0.5,1.0)
|
||||
static void Clear();
|
||||
|
||||
private:
|
||||
static std::unordered_map<std::string, GLuint> cache_;
|
||||
static GLuint LoadFromFile(const std::string& path);
|
||||
static GLuint Procedural(const std::string& name);
|
||||
static GLuint UploadRGBA(const unsigned char* data, int w, int h, bool srgb);
|
||||
};
|
||||
2201
src/main.cpp
2201
src/main.cpp
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user